ConvGetConvInfo
introduction
Get conversation info
The IM SDK provides an API for getting conversations, which you can use to get the ConvInfo object information of one or multiple specified conversations.
Parameter details
overload1
Parameter name |
Parameter type |
Required |
Description |
conv_list_param |
List< ConvParam > |
Required |
List of get conversation info params |
callback |
ValueCallback< List< ConvInfo > > |
Required |
Asynchronous callback The format of json_param in the return value is json |
overload2
Parameter name |
Parameter type |
Required |
Description |
conv_list_param |
List< ConvParam > |
Required |
List of get conversation info params |
callback |
ValueCallback< string > |
Required |
Asynchronous callback The format of json_param in the return value is string |
Returned template
TIMResult
The parameters of the callback function after successfully calling the API:
code:int
desc:string
json_param:
'[{
"conv_active_time": 5,
"conv_id": "98826",
"conv_is_has_draft": false,
"conv_is_has_lastmsg": true,
"conv_is_pinned": false,
"conv_last_msg": {
"message_client_time": 1620877708,
"message_conv_id": "98826",
"message_conv_type": 1,
"message_custom_int": 0,
"message_custom_str": "",
"message_elem_array": [{
"elem_type": 0,
"text_elem_content": "11111"
}],
"message_is_from_self": false,
"message_is_online_msg": false,
"message_is_peer_read": false,
"message_is_read": false,
"message_msg_id": "144115233874815003-1620877708-1038050731",
"message_platform": 0,
"message_priority": 1,
"message_rand": 1038050731,
"message_sender": "98826",
"message_sender_profile": {
"user_profile_add_permission": 1,
"user_profile_birthday": 0,
"user_profile_custom_string_array": [],
"user_profile_face_url": "test1-www.google.com",
"user_profile_gender": 0,
"user_profile_identifier": "98826",
"user_profile_language": 0,
"user_profile_level": 0,
"user_profile_location": "",
"user_profile_nick_name": "test change8888",
"user_profile_role": 0,
"user_profile_self_signature": ""
},
"message_seq": 15840,
"message_server_time": 1620877708,
"message_status": 2,
"message_unique_id": 6961616747713488299
},
"conv_type": 1,
"conv_unread_num": 1
}]'// For the meaning of Json Key, please refer to ConvInfo
user_data:string
Return value details
name |
type |
description |
TIMResult |
TIMResult |
Return value of calling API |
code |
int |
Result error code: Error Codes |
desc |
string |
The description of the error. |
json_param |
string |
Json string. Calling different API will get different Json strings.,For the meaning of Json Key, please refer to ConvInfo |
user_data |
string |
User-defined data transfered by ImSDK without any processing |
Code example
using UnityEngine;
using UnityEngine.UI;
using com.tencent.im.unity.demo.types;
using com.tencent.imsdk.unity;
using com.tencent.imsdk.unity.types;
using com.tencent.imsdk.unity.enums;
using System;
using com.tencent.im.unity.demo.utils;
using EasyUI.Toast;
using System.Collections;
using System.Collections.Generic;
public class ConvGetConvInfo : MonoBehaviour
{
public Text Header;
public Dropdown SelectedConv;
public Text Result;
public Button Submit;
public Button Copy;
private List<ConvInfo> ConvList;
void Start()
{
GameObject.Find("SelectConvLabel").GetComponent<Text>().text = Utils.t("SelectConvLabel");
ConvGetConvListSDK();
Header = GameObject.Find("HeaderText").GetComponent<Text>();
SelectedConv = GameObject.Find("Dropdown").GetComponent<Dropdown>();
Result = GameObject.Find("ResultText").GetComponent<Text>();
Submit = GameObject.Find("Submit").GetComponent<Button>();
Copy = GameObject.Find("Copy").GetComponent<Button>();
Copy.GetComponentInChildren<Text>().text = Utils.t("Copy");
Submit.onClick.AddListener(ConvGetConvInfoSDK);
Copy.onClick.AddListener(CopyText);
SelectedConv.interactable = true;
if (CurrentSceneInfo.info != null)
{
Header.text = Utils.IsCn() ? CurrentSceneInfo.info.apiText + " " + CurrentSceneInfo.info.apiName : CurrentSceneInfo.info.apiName;
Submit.GetComponentInChildren<Text>().text = CurrentSceneInfo.info.apiName;
}
}
void GetConvList(params object[] parameters)
{
try
{
ConvList = new List<ConvInfo>();
SelectedConv.ClearOptions();
string text = (string)parameters[1];
List<ConvInfo> List = Utils.FromJson<List<ConvInfo>>(text);
foreach (ConvInfo item in List)
{
print(item.conv_id);
ConvList.Add(item);
Dropdown.OptionData option = new Dropdown.OptionData();
option.text = item.conv_id;
SelectedConv.options.Add(option);
}
if (List.Count > 0)
{
SelectedConv.captionText.text = List[SelectedConv.value].conv_id;
}
}
catch (Exception ex)
{
Toast.Show(Utils.t("getConvListFailed"));
}
}
void ConvGetConvListSDK()
{
TIMResult res = TencentIMSDK.ConvGetConvList(Utils.addAsyncStringDataToScreen(GetConvList));
print($"ConvGetConvListSDK {res}");
}
void ConvGetConvInfoSDK()
{
print(ConvList[SelectedConv.value].conv_id);
string conv_id = ConvList[SelectedConv.value].conv_id;
TIMConvType conv_type = ConvList[SelectedConv.value].conv_type;
var param = new List<ConvParam>
{
new ConvParam
{
get_conversation_list_param_conv_type = conv_type,
get_conversation_list_param_conv_id = conv_id
}
};
TIMResult res = TencentIMSDK.ConvGetConvInfo(param, Utils.addAsyncStringDataToScreen(GetResult));
Result.text = Utils.SynchronizeResult(res);
}
void GetResult(params object[] parameters)
{
Result.text += (string)parameters[0];
}
void CopyText()
{
Utils.Copy(Result.text);
}
void OnApplicationQuit()
{
TencentIMSDK.Uninit();
}
}