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, constchar* 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_Receive
或 kTIMRecvMsgOpt_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 |
说明
示例
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);