群消息管理

更新时间: 2024/11/18 16:24:01

网易云信 IM 支持群组中消息的收发,群组相关操作的通知类消息的接收,以及群消息通知模式的设置。

支持平台

本文内容适用的开发平台或框架如下表所示:

Android iOS macOS/Windows Web/uni-app/小程序 Node.js/Electron HarmonyOS Flutter
✔️️️ ✔️️️ ✔️️️ ✔️️️ ✔️️️ ✔️️️ ✔️

群消息收发及历史消息

在创建或加入群组后,用户发送和接收消息的接口与单聊消息收发相同,区别在于会话类型的参数配置,TEAM 为高级群,SUPER_TEAM 为超大群。

  • 具体消息收发的流程,请参考 消息收发
  • 历史消息查询、删除、搜索等相关功能,请参考 历史消息

群通知消息

NIM SDK 支持的通知类消息(NOTIFICATION)主要用于群组、聊天室和超大群的事件通知,由服务端下发,客户端无法发送事件通知消息。

群通知消息类型

目前支持通知消息的事件类型如下:

事件类型 枚举值 事件说明
TEAM_INVITE 0 邀请成员入高级群
TEAM_KICK 1 高级群成员被踢出
TEAM_LAVE 2 高级群成员退群
TEAM_UPDATE_TINFO 3 高级群信息更新
TEAM_DISMISS 4 高级群被解散
TEAM_APPLY_PASS 5 进高级群申请通过
TEAM_OWNER_TRANSFER 6 高级群主身份转移
TEAM_ADD_MANAGER 7 添加高级群管理员
TEAM_REMOVE_MANAGER 8 移除高级群管理员
TEAM_INVITE_ACCEPT 9 接受邀请进高级群
TEAM_BANNED_TEAM_MEMBER 10 禁言高级群成员
SUPER_TEAM_INVITE 401 超大群拉人
SUPER_TEAM_KICK 402 超大群踢人
SUPER_TEAM_LAVE 403 退出超大群
SUPER_TEAM_UPDATE_TINFO 404 更新超大群信息
SUPER_TEAM_DISMISS 405 超大群解散
SUPER_TEAM_APPLY_PASS 410 超大群申请加入通过
SUPER_TEAM_OWNER_TRANSFER 406 移交超大群主
SUPER_TEAM_ADD_MANAGER 407 添加超大群管理员
SUPER_TEAM_REMOVE_MANAGER 408 移除超大群管理员
SUPER_TEAM_INVITE_ACCEPT 411 接受邀请进超大群
SUPER_TEAM_BANNED_TEAM_MEMBER 409 禁言超大群成员

群通知消息解析步骤

  1. 通过消息类型字段(messageType)判断是否为通知消息(NOTIFICATION)。
  2. 将消息的附件对象(attachment)强类型转换为消息通知附件对象(NIMMessageNotificationAttachment)。
  3. 通过消息通知附件对象的类型字段(type),获取具体的通知类型。
  4. 根据对应的通知类型构造相应的展示信息:
    • 消息对象的 senderId:事件的操作者 ID,表示是谁主动执行了该操作。
    • 消息通知附件对象的 targetIds:事件的被操作者 ID 列表,表示该操作的承受者。(事件类型 0、1、5、6、7、8、9、10 有该字段)
    • 消息通知附件对象的 chatBanned:群成员禁言状态
    • 消息通知附件对象的 updatedTeamInfo:群信息更新参数

群定向消息

在群组维度场景下,有时需要向群组中特定成员发送消息,以确保消息能够准确的传达给目标用户,同时可以避免对其他成员造成干扰。一般有以下使用场景:

  • 协同办公:针对特定成员发送特定任务,可以通过定向消息,保障消息传达给对应成员,提高沟通效率。
  • 在线教育:老师的差异化教学,针对不同的学生给出不同的辅导建议,可以使用定向消息保障老师与学生的精准交流。
  • 客户服务:在以群组为主的客户服务场景中,客服人员可能需要发送消息给特定客户,确认相关订单信息,通过定向消息,可以提供客户的满意度,同时也能提供沟通交流的效率,减少纠纷。
  • 社区管理:管理员或成员需要向特定的成员发送相关问题或规则,或定向发送活动邀约信息,定向消息可以提升沟通效率,减少消息打扰。
  • 自 IM V10.4.0 起开始支持群定向消息功能,群定向消息不支持 PIN 消息和 Thread 消息类型,快捷评论只影响定向消息范围。
  • 群定向消息功能自 IM 旗舰版开始支持,低于旗舰版本不支持。
  • 单聊场景下该功能失效。

通过发送消息(sendMessage)接口的配置参数中的 targetConfig 参数来配置群定向消息。

参数说明:

名称 类型 是否必填 默认值 说明
inclusive Boolean true 群定向消息成员列表是否为可见列表。默认为 true,即 receiver_account_ids 为可见(接收)列表;receiver_account_ids 之外的成员为不可见列表。若设置为 false,则相反。发送超大群消息时,不能将 inclusive 设置为 false。
receiverIds List<String> - 群定向消息成员列表,即指定接收群消息的群成员列表。若为空或 size=0,则发送给群组中的所有人。
  • inclusive 为 true,当前列表为可见(接收)列表。
  • inclusive 为 false,当前列表为不可见(不接收)列表。
  • 列表中不能包含消息发送者,消息发送者默认为可见。
  • 列表中不能包含非法账号、非群成员账号,也不能为空。
  • 列表中最多可以传入 100 个用户账号。
  • newMemberVisible Boolean false 新进群成员是否可见该消息。默认为 false,即新进群成员不可以查看该群定向消息。若设置为 true,则新进群成员若可以查询该定向消息,可以通过云端历史相关接口查询到该消息。
  • inclusive 为 true 时,不能同时设置 visible_to_new_member 为 true。即发送定向列表为可见的定向消息时,只能由定向列表中成员接收和查看。
  • 发送超大群消息时,不能将 visible_to_new_member 设置为 true。
  • 群消息免打扰

    群消息免打扰的设置请参考 免打扰设置

    配置群消息强制推送/提醒

    云信 NIM SDK 支持对于群消息的强制推送/提醒功能。

    当发送方设置了某条群消息的强制推送/提醒,群消息接收者即使设置了该群的群消息免打扰或全局的免打扰(具体参考 全局推送免打扰),仍能接收到该条群消息的在线提醒或离线推送

    • 对于 Android 而言,若用户离线,则强制发送离线推送;若在线,则强制发送在线提醒。
    • 对于其他客户端而言,只发送离线推送。

    通过消息体的第三方推送选项字段 pushConfig 来实现。

    • forcePush:是否忽略用户的推送或提醒相关设置,强制推送或提醒。
      • 该字段仅对群消息有效。
      • 该字段仅针对 forcePushAccountIds 中的用户。
      • 默认为 false。如需要强制推送/提醒,需要设置为 true。
    • forcePushContent :强制推送/提醒文案,若为空,则复用推送文案 pushContent
    • forcePushAccountIds:强制推送/提醒的目标用户列表。若为空,则表示强制推送/提醒该会话的所有成员。若不为空,最多可传入 100 个用户账号。
    • 对于 forcePushAccountIds 中的用户,推送文案/提醒使用 forcePushContent(若为空则使用 pushContent)。
    • 对于不在 forcePushAccountIds 中的用户,推送文案/提醒使用 pushContent

    群消息已读回执

    常见问题

    在主动退群、被踢、解散群之后,会收到一条相应类型的群组通知消息,相关会话信息仍会保留,只是此后不再接收关于此群的消息。如果在收到相应的群通知消息之前将会话删除,则收到群通知消息后,SDK 会重建对应会话。因此,若需彻底删除群组会话,正确时机是收到相应类型的群通知消息之后。

    • 如何删除最近会话,请参考 删除会话
    • 删除会话并不会自动删除会话对应的历史消息,如需删除历史消息,请参考 删除历史消息

    涉及接口

    Android/iOS/macOS/Windows/Web/uni-app/小程序/Node.js/Electron/HarmonyOS
    API 说明
    V2NIMConversationType 会话类型
    V2NIMMessageType 消息类型
    V2NIMMessageNotificationType 通过消息类型
    V2NIMMessage 消息对象
    V2NIMMessageNotificationAttachment 通知附件对象
    sendMessage 发送消息
    V2NIMMessageTargetConfig 群定向消息配置信息
    V2NIMMessagePushConfig 消息第三方推送配置信息
    Flutter
    API 说明
    NIMConversationType 会话类型
    NIMMessageType 消息类型
    NIMMessageNotificationType 通过消息类型
    NIMMessage 消息对象
    NIMMessageNotificationAttachment 通知附件对象
    sendMessage 发送消息
    NIMMessageTargetConfig 群定向消息配置信息
    NIMMessagePushConfig 消息第三方推送配置信息
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 支持平台
    • 群消息收发及历史消息
    • 群通知消息
    • 群通知消息类型
    • 群通知消息解析步骤
    • 群定向消息
    • 群消息免打扰
    • 配置群消息强制推送/提醒
    • 群消息已读回执
    • 常见问题
    • 涉及接口