• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
Web/
消息/
SDK
  • 集成 SDK
  • 初始化
  • 登录登出
  • 接口列表
  • 更新日志
  • 消息
    • 介绍
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 修改消息
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群定向消息
    • 消息免打扰
    • 消息扩展
    • 消息翻译
  • 会话
    • 介绍
    • 会话列表
    • 获取会话
    • 会话未读数
    • 置顶会话
    • 删除会话
    • 会话标记
    • 会话分组
  • 群组
    • 介绍
    • 管理群组
    • 群资料
    • 管理群成员
    • 群成员资料
    • 自定义属性
    • 群计数器
  • 社群话题
    • 管理社群
  • 用户
    • 用户资料
    • 用户状态
    • 管理好友
    • 好友列表
    • 黑名单
  • 开发指引
  • 控制台指南
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 购买指南
    • 计费概述
    • 价格中心
  • 错误码

消息免打扰

功能描述

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

setMessageRemindType

注意
作为群成员,可设置自己所在群的消息提示类型。
“消息免打扰”,一般的实现是在线接收消息,离线不接收消息(在有离线推送的情况下)。
“拒收消息”,即在线和离线都不接收消息,对端发送的消息可通过 getMessageList 获取到。
该接口支持设置社群话题的消息提示类型,groupID 传入 topicID 即可,如果话题所属社群设置为 TencentCloudChat.TYPES.MSG_REMIND_DISCARD,则会忽略话题的设置。
支持群会话消息和话题消息的提醒类型多终端、多实例同步。
接口
chat.setMessageRemindType(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
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 拒收消息)
返回值
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);
});