tencent cloud

文档反馈

JavaScript

最后更新时间:2024-11-14 17:56:05

    功能描述

    通过设置单聊和群聊的消息接收选项,可以实现消息免打扰的功能。
    IM SDK 支持三种类型的消息接收选项:
    消息接收选项
    功能描述
    在线时正常接收消息,离线时接收离线推送通知
    SDK 接收消息并通知接入侧(抛出 TencentCloudChat.EVENT.MESSAGE_RECEIVED 事件),接入侧不做提示,一般用于实现“消息免打扰”
    SDK 拒收消息
    在线接收消息,离线仅接收群 @消息 的推送
    SDK 仅接收 @消息(仅适用于话题)

    setMessageRemindType

    说明:
    1. 作为群成员,可设置自己所在群的消息提示类型。
    2. “消息免打扰”,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下)。
    3. “拒收消息”,即在线和离线都不接收消息,对端发送的消息可通过 getMessageList 获取到。
    4. 该接口支持设置社群话题的消息提示类型,groupID 传入 topicID 即可,如果话题所属社群设置为 TencentCloudChat.TYPES.MSG_REMIND_DISCARD,则会忽略话题的设置。
    5. 支持群会话消息和话题消息的提醒类型多终端、多实例同步。
    接口
    chat.setMessageRemindType(options);
    参数
    参数 optionsObject类型,包含的属性值如下:
    Name
    Type
    Description
    groupID
    String
    群 ID 或 话题 ID
    userIDList
    Array
    C2C 会话对端 userID 列表,单次请求的 userID 数不得超过30
    messageRemindType
    String
    群消息提示类型。详细如下:
    TencentCloudChat.TYPES.MSG_REMIND_ACPT_AND_NOTE(SDK 接收消息并通知接入侧(抛出 MESSAGE_RECEIVED 事件),接入侧做提示)
    TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE(SDK 接收消息并通知接入侧(抛出 MESSAGE_RECEIVED 事件),接入侧不做提示,一般用于实现“消息免打扰”)
    TencentCloudChat.TYPES.MSG_REMIND_DISCARD(SDK 拒收消息)
    TencentCloudChat.TYPES.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT(在线接收消息,离线仅接收群 @消息 的推送)
    TencentCloudChat.TYPES.NOT_RECEIVE_MSG_EXCEPT_AT(SDK 仅接收话题 @消息 并通知接入侧)
    返回值
    Promise
    示例
    // 拒收群消息(通过 getMessageList 接口可拉取到其他群成员发送的消息)
    let promise = chat.setMessageRemindType({
    groupID: 'group1',
    messageRemindType: TencentCloudChat.TYPES.MSG_REMIND_DISCARD
    });
    promise.then(function(imResponse) {
    // 设置成功后 SDK 会触发 TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED 事件
    // (遍历列表,并读取 Conversation.messageRemindType)
    }).catch(function(imError) {
    console.warn('setMessageRemindType error:', imError);
    });
    // 拒收群消息后,重新开启新消息提醒
    let promise = chat.setMessageRemindType({
    groupID: 'group1',
    messageRemindType: TencentCloudChat.TYPES.MSG_REMIND_ACPT_AND_NOTE
    });
    promise.then(function(imResponse) {
    // 设置成功后 SDK 会触发 TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED 事件
    // (遍历列表,并读取 Conversation.messageRemindType)
    }).catch(function(imError) {
    console.warn('setMessageRemindType error:', imError);
    });
    // C2C 消息免打扰,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下)
    let promise = chat.setMessageRemindType({
    userIDList: ['user1', 'user2'],
    messageRemindType: TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE
    });
    promise.then(function(imResponse) {
    // 设置成功后 SDK 会触发 TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED 事件
    //(遍历列表,并读取 Conversation.messageRemindType)
    const { successUserIDList, failureUserIDList } = imResponse.data;
    // 删除成功的 userIDList
    successUserIDList.forEach((item) => {
    const { userID } = item;
    });
    // 删除失败的 userIDList
    failureUserIDList.forEach((item) => {
    const { userID, code, message } = item;
    });
    }).catch(function(imError) {
    console.warn('setMessageRemindType error:', imError);
    });
    // 群消息免打扰,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下)
    let promise = chat.setMessageRemindType({
    groupID: 'group1',
    messageRemindType: TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE
    });
    promise.then(function(imResponse) {
    // 设置消息免打扰成功
    }).catch(function(imError) {
    // 设置消息免打扰失败
    console.warn('setMessageRemindType error:', imError);
    });
    // 社群话题消息免打扰,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下)
    let promise = chat.setMessageRemindType({
    groupID: 'topicID',
    messageRemindType: TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE
    });
    promise.then(function(imResponse) {
    // 设置消息免打扰成功
    }).catch(function(imError) {
    // 设置消息免打扰失败
    console.warn('setMessageRemindType error:', imError);
    });
    // 设置用户在线时,话题仅接收 @消息(@我和@所有人的消息) let promise = chat.setMessageRemindType({
    groupID: 'topicID',
    messageRemindType: TencentCloudChat.TYPES.NOT_RECEIVE_MSG_EXCEPT_AT
    }); promise.then(function(imResponse) { // 设置成功 }).catch(function(imError) { // 设置失败 console.warn('setMessageRemindType error:', imError); });
    
    联系我们

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

    技术支持

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

    7x24 电话支持