文档捉虫大赛:人工智能与机器学习专题> HOT
IM SDK 中会话(Conversation)分为两种。
C2C 会话,表示单聊情况自己与对方建立的对话,读取消息和发送消息都是通过会话完成。
群会话,表示群聊情况下,群内成员组成的会话,群会话内发送消息群成员都可接收到。

TIMConvCreate

创建会话。(待废弃,发送和接收消息,SDK 内部自动创建会话,不需要手动创建)
原型
TIM_DECL int TIMConvCreate(const char* conv_id, enum TIMConvType conv_type, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
conv_id
const char*
会话的 ID
conv_type
enum TIMConvType
会话类型,请参考 TIMConvType
cb
TIMCommCallback
创建会话的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
会话是指面向一个人或者一个群组的对话,通过与单个人或群组之间会话收发消息。
此接口创建或者获取会话信息,需要指定会话类型(群组或者单聊),以及会话对方标志(对方账号或者群号)。会话信息通过 cb 回传。
示例一、获取对方 UserID 为 Windows-02 的单聊会话示例
const void* user_data = nullptr; // 回调函数回传
const char* userid = "Windows-02";
int ret = TIMConvCreate(userid, kTIMConv_C2C, [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
if (ERR_SUCC != code) {
return;
}
// 回调返回会话的具体信息
}, user_data);
if (ret != TIM_SUCC) {
// 调用 TIMConvCreate 接口失败
}
示例二、获取群组 ID 为 Windows-Group-01 的群聊会话示例
const void* user_data = nullptr; // 回调函数回传
const char* userid = "Windows-Group-01";
int ret = TIMConvCreate(userid, kTIMConv_Group, [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
if (ERR_SUCC != code) {
return;
}
// 回调返回会话的具体信息
}, user_data);
if (ret != TIM_SUCC) {
// 调用 TIMConvCreate 接口失败
}

TIMConvDelete

删除会话。
原型
TIM_DECL int TIMConvDelete(const char* conv_id, enum TIMConvType conv_type, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
conv_id
const char*
会话的 ID
conv_type
enum TIMConvType
会话类型,请参考 TIMConvType
cb
TIMCommCallback
删除会话成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
此接口用于删除会话,删除会话是否成功通过回调返回。

TIMConvGetConvList

获取最近联系人的会话列表。
原型
TIM_DECL int TIMConvGetConvList(TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
cb
TIMCommCallback
获取最近联系人会话列表的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

TIMConvGetConversationListByFilter

获取会话列表高级接口(从 6.5 版本开始支持)
原型
TIM_DECL int TIMConvGetConversationListByFilter(const char* filter, uint64_t next_seq, uint32_t count, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
filter
const char*
获取会话列表高级接口的 filter,请参考 TIMConversationListFilter
cb
TIMCommCallback
获取会话列表高级接口的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
json::Object filter;
filter[kTIMConversationListFilterConvType] = kTIMConv_Group;
filter[kTIMConversationListFilterMarkType] = kTIMConversationMarkTypeStar;
filter[kTIMConversationListFilterConversationGroup] = "my_group_name";

TIMConvGetConversationListByFilter(json::Serialize(filter).c_str(), 0, 20, [](int32_t code, const char* desc, const char* json_param, const void*
user_data) {
printf("TIMConvGetConversationListByFilter code:%d|desc:%s|json_param %s\\n", code, desc, json_param);

// 读取 json_param 存放的结果
json::Value json = json::Deserialize(json_param);
// 可以通过 json[TIMConversationListResultConvList] 来读取到 array ConvInfo 会话列表
uint64_t next_seq = json[TIMConversationListResultNextSeq].ToUInt64();
bool is_finished = json[TIMConversationListResultIsFinished].ToBool();
if (!is_finished) {
// 继续调用 TIMConvGetConversationListByFilter 获取下一页,filter 参数的字段填写如下所示
// json::Object filter;
// filter[kTIMConversationListFilterConvType] = kTIMConv_Group;
// filter[kTIMConversationListFilterMarkType] = kTIMConversationMarkTypeStar;
// filter[kTIMConversationListFilterConversationGroup] = "my_group_name";
}
}, nullptr);

TIMConvGetConvInfo

查询一组会话列表。
原型
TIM_DECL int TIMConvGetConvInfo(const char* json_get_conv_list_param, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_get_conv_list_param
const char*
会话 ID 和会话类型的列表
cb
TIMCommCallback
会话列表的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
Json::Object json_obj;
json_obj[kTIMGetConversationListParamConvId] = "98826";
json_obj[kTIMGetConversationListParamConvType] = kTIMConv_C2C;

Json::Array json_arry;
json_arry.append(json_obj);

TIMConvGetConvInfo(json_arry.toStyledString().c_str(),
[](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvGetConvInfo|code:%d|desc:%s\\n", code, desc);
}, nullptr);

// json_params 示例。 具体请参考 [ConvInfo](TIMCloudDef.h)
[{
"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
}]

TIMConvSetDraft

设置指定会话的草稿。
原型
TIM_DECL int TIMConvSetDraft(const char* conv_id, enum TIMConvType conv_type, const char* json_draft_param);
参数
参数
类型
含义
conv_id
const char*
会话的 ID
conv_type
enum TIMConvType
会话类型,请参考 TIMConvType
json_draft_param
const char*
被设置的草稿 JSON 字符串
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功,其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
会话草稿一般用在保存用户当前输入的未发送的消息。
示例
Json::Value json_value_text; // 构造消息
json_value_text[kTIMElemType] = kTIMElem_Text;
json_value_text[kTIMTextElemContent] = "this draft";
Json::Value json_value_msg;
json_value_msg[kTIMMsgElemArray].append(json_value_text);

Json::Value json_value_draft; // 构造草稿
json_value_draft[kTIMDraftEditTime] = time(NULL);
json_value_draft[kTIMDraftUserDefine] = "this is userdefine";
json_value_draft[kTIMDraftMsg] = json_value_msg;

if (TIM_SUCC != TIMConvSetDraft(userid.c_str(), TIMConvType::kTIMConv_C2C, json_value_draft.toStyledString().c_str())) {
// TIMConvSetDraft 接口调用失败
}

// json_value_draft.toStyledString().c_str() 得到 json_draft_param JSON 字符串如下
{
"draft_edit_time" : 1551271429,
"draft_msg" : {
"message_elem_array" : [
{
"elem_type" : 0,
"text_elem_content" : "this draft"
}
]
},
"draft_user_define" : "this is userdefine"
}

TIMConvCancelDraft

删除指定会话的草稿。
原型
TIM_DECL int TIMConvCancelDraft(const char* conv_id, enum TIMConvType conv_type);
参数
参数
类型
含义
conv_id
const char*
会话的 ID
conv_type
enum TIMConvType
会话类型,请参考 TIMConvType
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功,其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

TIMConvSetConversationCustomData

设置会话自定义数据 (从 6.5 版本开始支持)
原型
TIM_DECL int TIMConvSetConversationCustomData(const char* conversation_id_array, const char* custom_data, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
conversation_id_array
const char*
会话 ID 列表
custom_data
const char*
自定义数据,最大支持 256 bytes
cb
TIMCommCallback
设置会话自定义字段的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
json::Array conversation_id_array;
conversation_id_array.push_back("c2c_conversation_id1");
conversation_id_array.push_back("group_conversation_id2");

std::string custom_data = "my_custom_data";

TIMConvSetConversationCustomData(json::Serialize(conversation_id_array).c_str(), custom_data.c_str(), [](int32_t code, const char* desc, const
char* json_param, const void* user_data) {
printf("TIMConvSetConversationCustomData code:%d|desc:%s|json_param %s\\n", code, desc, json_param);

// 遍历读取 json_param 存放的操作结果,参见 TIMConversationOperationResult 的定义
}, nullptr);

TIMConvPinConversation

设置会话置顶。
原型
TIM_DECL int TIMConvPinConversation(const char* conv_id, TIMConvType conv_type, bool is_pinned, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
conv_id
const char*
会话的 ID
conv_type
enum TIMConvType
会话类型,请参考 TIMConvType
is_pinned
bool
是否置顶会话
cb
TIMCommCallback
设置会话置顶回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
// json_param 返回值为空字符串, 直接判断 code 即可
TIMConvPinConversation(
[](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvPinConversation|code:%d|desc:%s\\n", code, desc);
}, nullptr);

TIMConvMarkConversation

标记会话 (从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvMarkConversation(const char* conversation_id_array, uint64_t mark_type, bool enable_mark, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
conversation_id_array
const char*
会话 ID 列表
mark_type
uint64_t
会话标记类型,取值请参考 TIMConversationMarkType
enable_mark
bool
true:设置标记,false:取消标记
cb
TIMCommCallback
标记会话的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明

如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
1. 扩展标记值不能和 V2TIMConversationMarkType 已有的标记值冲突
1. 扩展标记值必须是 0x1LL << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),例如扩展标记值 0x1LL << 32 表示 "Windows 在线"
扩展标记值不能设置为 0x1 << 32,要设置为 0x1LL << 32,明确告诉编译器是 64 位的整型常量。
示例
json::Array conversation_id_array;
conversation_id_array.push_back("c2c_conversation_id1");
conversation_id_array.push_back("group_conversation_id2");

uint64_t mark_type = (uint64_t)kTIMConversationMarkTypeUnread | (0x1LL << 32);
bool enable_mark = true;

TIMConvMarkConversation(json::Serialize(conversation_id_array).c_str(), mark_type, enable_mark, [](int32_t code, const char* desc, const char*
son_param, const void* user_data) {
printf("TIMConvMarkConversation code:%d|desc:%s|json_param %s\\n", code, desc, json_param);
// 遍历读取 json_param 存放的操作结果,参见 TIMConversationOperationResult 的定义
}, nullptr);

TIMConvGetTotalUnreadMessageCount

获取所有会话总的未读消息数。
原型
TIM_DECL int TIMConvGetTotalUnreadMessageCount(TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
cb
TIMCommCallback
获取所有会话总的未读消息数回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明

调用该接口以后,任意会话的未读数发生变化时,SDK 都会给您抛 TIMSetConvTotalUnreadMessageCountChangedCallback 注册的回调。
未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 kTIMRecvMsgOpt_Not_ReceivekTIMRecvMsgOpt_Not_Notify 的会话。
示例
TIMConvGetTotalUnreadMessageCount(
[](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvGetTotalUnreadMessageCount|code:%d|desc:%s\\n", code, desc);
}, nullptr);

// json_param 的示例。 json key 请参考 [GetTotalUnreadNumberResult](TIMCloudDef.h)
// {"conv_get_total_unread_message_count_result_unread_count":4}

TIMConvGetUnreadMessageCountByFilter

根据 filter 获取未读总数(7.0 及以上版本支持)
原型
TIM_DECL int TIMConvGetUnreadMessageCountByFilter(const char* filter, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
filter
const char*
会话 filter, 请参考 TIMConversationListFilter
cb
TIMCommCallback
获取未读总数的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 kTIMRecvMsgOpt_Not_Receive 或 kTIMRecvMsgOpt_Not_Notify 的会话。
示例
json::Object filter;
filter[kTIMConversationListFilterConvType] = kTIMConv_Group;
filter[kTIMConversationListFilterConversationGroup] = "my_group_name";
filter[kTIMConversationListFilterMarkType] = kTIMConversationMarkTypeStar;

TIMConvGetUnreadMessageCountByFilter(json::Serialize(filter).c_str(), [](int32_t code, const char* desc, const char* json_param, const void*
user_data) {
// json key 请参考 [GetTotalUnreadNumberResult](TIMCloudDef.h)
printf("TIMConvGetTotalUnreadMessageCount|code:%d|desc:%s|json_param:%s\\n", code, desc, json_param);
}, nullptr);

TIMConvSubscribeUnreadMessageCountByFilter

注册监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
原型
TIM_DECL int TIMConvSubscribeUnreadMessageCountByFilter(const char* filter);
参数
参数
类型
含义
filter
const char*
会话 filter, 请参考 TIMConversationListFilter
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
当您调用这个接口以后,该 filter 下的未读数发生变化时,SDK 会给您抛 TIMSetConvUnreadMessageCountChangedByFilterCallback 注册的回调。
示例
json::Object filter;
filter[kTIMConversationListFilterConvType] = kTIMConv_Group;
filter[kTIMConversationListFilterConversationGroup] = "my_group_name";
filter[kTIMConversationListFilterMarkType] = kTIMConversationMarkTypeStar;

TIMConvSubscribeUnreadMessageCountByFilter(json::Serialize(filter).c_str());

TIMConvUnsubscribeUnreadMessageCountByFilter

取消监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
原型
TIM_DECL int TIMConvUnsubscribeUnreadMessageCountByFilter(const char* filter);
参数
参数
类型
含义
filter
const char*
会话 filter, 请参考 TIMConversationListFilter
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
json::Object filter;
filter[kTIMConversationListFilterConvType] = kTIMConv_Group;
filter[kTIMConversationListFilterConversationGroup] = "my_group_name";
filter[kTIMConversationListFilterMarkType] = kTIMConversationMarkTypeStar;

TIMConvUnsubscribeUnreadMessageCountByFilter(json::Serialize(filter).c_str());

TIMConvCreateConversationGroup

创建会话分组(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvCreateConversationGroup(const char* group_name, const char* conversation_id_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
group_name
const char*
分组名(必填参数,长度要 > 0,最大支持 32 bytes)
conversation_id_array
const char*
会话 ID 列表(必填参数,不能为空)
cb
TIMCommCallback
创建会话分组的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
std::string group_name = "my_group_name";

json::Array conversation_id_array;
conversation_id_array.push_back("c2c_conversation_id1");
conversation_id_array.push_back("group_conversation_id2");

TIMConvCreateConversationGroup(group_name.c_str(), json::Serialize(conversation_id_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvCreateConversationGroup code:%d|desc:%s|json_param %s\\n", code, desc, json_param);

// 遍历读取 json_param 存放的操作结果,参见 TIMConversationOperationResult 的定义
}, nullptr);

TIMConvGetConversationGroupList

获取会话分组列表(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvGetConversationGroupList(TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
cb
TIMCommCallback
获取会话分组列表的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
会话分组最大支持 20 个,不再使用的分组请及时删除。
示例
TIMConvGetConversationGroupList([](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvGetConversationGroupList code:%d|desc:%s|json_param %s\\n", code, desc, json_param);

// 读取 json_param 存放的会话分组列表,例如:
// [
// "my_group_name1",
// "my_group_name2",
// "my_group_name3"
// ]
}, nullptr);

TIMConvDeleteConversationGroup

删除会话分组(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvDeleteConversationGroup(const char* group_name, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
group_name
const char*
分组名(必填参数,长度要 > 0,最大支持 32 bytes)
cb
TIMCommCallback
删除会话分组的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
std::string group_name = "my_group_name";

TIMConvDeleteConversationGroup(group_name.c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvDeleteConversationGroup code:%d|desc:%s|json_param %s\\n", code, desc, json_param);
}, nullptr);

TIMConvRenameConversationGroup

重命名会话分组(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvRenameConversationGroup(const char* old_name, const char* new_name, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
old_name
const char*
旧分组名(必填参数,长度要 > 0,最大支持 32 bytes)
new_name
const char*
新分组名(必填参数,长度要 > 0,最大支持 32 bytes)
cb
TIMCommCallback
重命名会话分组的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
std::string old_name = "old_name";
std::string new_name = "new_name";

TIMConvRenameConversationGroup(old_name.c_str(), new_name.c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvRenameConversationGroup code:%d|desc:%s|json_param %s\\r\\n", code, desc, json_param);
}, nullptr);

TIMConvAddConversationsToGroup

添加会话到一个会话分组(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvAddConversationsToGroup(const char* group_name, const char* conversation_id_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
group_name
const char*
分组名(必填参数,长度要 > 0,最大支持 32 bytes)
cb
TIMCommCallback
添加会话到一个会话分组的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
std::string group_name = "my_group_name";

json::Array conversation_id_array;
conversation_id_array.push_back("c2c_conversation_id1");
conversation_id_array.push_back("group_conversation_id2");

TIMConvAddConversationsToGroup(group_name.c_str(), json::Serialize(conversation_id_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvAddConversationsToGroup code:%d|desc:%s|json_param %s\\r\\n", code, desc, json_param);

// 遍历读取 json_param 存放的操作结果,参见 TIMConversationOperationResult 的定义
}, nullptr);

TIMConvDeleteConversationsFromGroup

从会话分组中删除多个会话(从 6.5 版本开始支持,需要您购买旗舰版套餐)
原型
TIM_DECL int TIMConvDeleteConversationsFromGroup(const char* group_name, const char* conversation_id_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
group_name
const char*
分组名(必填参数,长度要 > 0,最大支持 32 bytes)
conversation_id_array
const char*
会话 ID 列表(必填参数,不能为空)
cb
TIMCommCallback
从会话分组中删除多个会话的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
Int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
示例
std::string group_name = "my_group_name";

json::Array conversation_id_array;
conversation_id_array.push_back("c2c_conversation_id1");
conversation_id_array.push_back("group_conversation_id2");

TIMConvDeleteConversationsFromGroup(group_name.c_str(), json::Serialize(conversation_id_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
printf("TIMConvDeleteConversationsFromGroup code:%d|desc:%s|json_param %s\\r\\n", code, desc, json_param);

// 遍历读取 json_param 存放的操作结果,参见 TIMConversationOperationResult 的定义
}, nullptr);