群消息管理

更新时间: 2024/08/22 14:47:21

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

群消息收发及历史消息

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

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

群通知消息

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

群通知消息类型

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

V2NIMMessageNotificationType 枚举值 事件
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE 0 邀请成员入高级群
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_KICK 1 高级群成员被踢出
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_LAVE 2 高级群成员退群
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_UPDATE_TINFO 3 高级群信息更新
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_DISMISS 4 高级群被解散
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_APPLY_PASS 5 进高级群申请通过
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_OWNER_TRANSFER 6 高级群主身份转移
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_ADD_MANAGER 7 添加高级群管理员
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_REMOVE_MANAGER 8 移除高级群管理员
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE_ACCEPT 9 接受邀请进高级群
V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_BANNED_TEAM_MEMBER 10 禁言高级群成员
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE 401 超大群拉人
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_KICK 402 超大群踢人
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_LAVE 403 退出超大群
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_UPDATE_TINFO 404 更新超大群信息
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_DISMISS 405 超大群解散
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_APPLY_PASS 410 超大群申请加入通过
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_OWNER_TRANSFER 406 移交超大群主
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_ADD_MANAGER 407 添加超大群管理员
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_REMOVE_MANAGER 408 移除超大群管理员
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE_ACCEPT 411 接受邀请进超大群
V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_BANNED_TEAM_MEMBER 409 禁言超大群成员

群通知消息解析步骤

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

群定向消息

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

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

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

V2NIMMessageTargetConfig 的参数说明:

名称 类型 是否必填 默认值 说明
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 而言,若用户离线,则强制发送离线推送;若在线,则强制发送在线提醒。
    • 对于其他客户端而言,只发送离线推送。

    通过消息体的第三方推送选项字段 V2NIMMessage.pushConfigV2NIMMessagePushConfig)来实现。

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

    群消息已读回执

    常见问题

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

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

    相关信息

    此文档是否对你有帮助?
    有帮助
    去反馈
    • 群消息收发及历史消息
    • 群通知消息
    • 群通知消息类型
    • 群通知消息解析步骤
    • 群定向消息
    • 群消息免打扰
    • 配置群消息强制推送/提醒
    • 群消息已读回执
    • 常见问题
    • 相关信息