tencent cloud

文档反馈

会话相关接口

最后更新时间:2024-02-19 09:40:23
    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

    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

    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);

    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
    示例
    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}
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持