tencent cloud

文档反馈

JavaScript

最后更新时间:2024-11-13 18:11:10

    功能描述

    在某些场景下,您可能需要对会话进行标记,例如 "会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”等,您可以调用以下接口实现。
    说明:
    该功能仅对进阶版客户开放,购买进阶版后可使用。

    效果展示

    

    设置会话自定义数据

    调用此接口成功后 SDK 会派发事件 TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED
    接口
    chat.setConversationCustomData(options);
    参数
    参数 optionsObject类型,包含的属性值如下:
    参数
    类型
    说明
    conversationIDList
    String
    会话 ID 列表
    customData
    String
    自定义数据,长度最大支持256字节
    返回值
    Promise
    示例
    // 给 C2C 会话和群会话设置会话自定义数据
    let promise = chat.setConversationCustomData({
    conversationIDList: ['GROUPtest', 'C2Cexample'],
    customData: 'your custom data'
    });
    promise.then(function(imResponse) {
    // 设置会话自定义数据成功
    const { successConversationIDList, failureConversationIDList } = imResponse.data;
    // successConversationIDList - 设置成功的会话 ID 列表
    // 获取会话列表
    const conversationList = chat.getConversationList(successConversationIDList);
    // failureConversationIDList - 设置失败的会话 ID 列表
    failureConversationIDList.forEach((item) => {
    const { conversationID, code, message } = item;
    });
    }).catch(function(imError) {
    console.warn('setConversationCustomData error:', imError);
    });
    // customData 传入空字符串,表示清空会话自定义数据
    let promise = chat.setConversationCustomData({
    conversationIDList: ['GROUPtest', 'C2Cexample'],
    customData: ''
    });
    promise.then(function(imResponse) {
    // 清空会话自定义数据成功
    const { successConversationIDList, failureConversationIDList } = imResponse.data;
    // successConversationIDList - 清空成功的会话 ID 列表
    // 获取会话列表
    const conversationList = chat.getConversationList(successConversationIDList);
    // failureConversationIDList - 清空失败的会话 ID 列表
    failureConversationIDList.forEach((item) => {
    const { conversationID, code, message } = item;
    });
    }).catch(function(imError) {
    console.warn('setConversationCustomData error:', imError);
    });

    会话标记

    您可以调用 markConversation 接口标记或者取消标记会话。
    说明:
    1. 当用户标记了会话,SDK 只是简单记录了会话的标记值,并不会改变会话的底层逻辑,比如标记会话为 TencentCloudChat.TYPES.CONV_MARK_TYPE_UNREAD,会话的底层的未读数并不会发生改变。
    2. SDK 提供了四个默认标记("会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”),如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
    扩展标记值不能和已有的标记值冲突。
    自定义标记值必须是 Math.power(2, n)(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如自定义 Math.power(2, 32) 标记值表示 "iPhone 在线"。
    接口
    chat.markConversation(options);
    参数
    参数 optionsObject类型,包含的属性值如下:
    参数
    类型
    说明
    conversationIDList
    String
    会话 ID 列表
    markType
    String
    会话标记类型
    enableMark
    Boolean
    true 设置标记
    false 取消标记
    返回值
    Promise
    示例
    // 会话标星
    let promise = chat.markConversation({
    conversationIDList: ['GROUPtest', 'C2Cexample'],
    markType: TencentCloudChat.TYPES.CONV_MARK_TYPE_STAR,
    enableMark: true
    });
    promise.then(function(imResponse) {
    // 会话标星成功
    const { successConversationIDList, failureConversationIDList } = imResponse.data;
    // successConversationIDList - 标星成功的会话 ID 列表
    // 获取会话列表
    const conversationList = TencentCloudChat.getConversationList(successConversationIDList);
    
    // failureConversationIDList - 标星失败的会话 ID 列表
    failureConversationIDList.forEach((item) => {
    const { conversationID, code, message } = item;
    });
    }).catch(function(imError) {
    console.warn('markConversation error:', imError);
    });

    监听会话标记变更通知

    会话被标记或者取消标记后,会话 ConversationmarkList字段会发生变更,您可以通过事件 TencentCloud.EVENT.CONVERSATION_LIST_UPDATED 监听会话变更通知。
    示例
    let onConversationListUpdated = function(event) {
    console.log(event.data); // 包含 Conversation 实例的数组
    };
    tim.on(TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED, onConversationListUpdated);

    拉取指定标记会话

    您可以调用 getConversationList 接口拉取指定标记会话。
    示例
    // 获取所有的“标星”会话
    let promise = chat.getConversationList({ markType: TencentCloudChat.TYPES.CONV_MARK_TYPE_STAR });
    promise.then(function(imResponse) {
    const conversationList = imResponse.data.conversationList; // 会话列表
    });
    // 获取所有折叠的 C2C 会话
    let promise = chat.getConversationList({
    markType: TencentCloudChat.TYPES.CONV_MARK_TYPE_FOLD,
    type: TencentCloudChat.TYPES.CONV_C2C
    });
    promise.then(function(imResponse) {
    const conversationList = imResponse.data.conversationList; // 会话列表
    });
    
    联系我们

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

    技术支持

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

    7x24 电话支持