跳到主要内容

群组概述

群聊是即时通讯类应用中常见的多人通讯方式,一般包含两个及以上的用户。融云的群组业务支持丰富的群组成员管理、禁言管理等特性,支持离线消息推送和历史消息记录漫游,可用于兴趣群、办公群、客服服务沟通等。IMKit 提供开箱即用的群聊会话 UI 组件。

服务配置

客户端 SDK 默认支持群组业务,不需要申请开通。部分基础功能与增值服务可以在控制台 IM 服务的服务购买服务配置页面进行开通和配置。

  • 信息托管服务已默认开通。IMKit 5.12.0 版本及之后支持切换为用户信息托管方式,用于托管用户、群组和群成员资料,并使用对应的群组管理能力。
  • App Key 下可创建的群组数量无限制。单个用户可加入的群组数量无限制。
  • 群组有容量上限,默认群组成员数量上限为 3000 人,可提交工单修改。
  • 默认情况下,App Key 未开通单群聊消息云端存储服务。您可以在控制台开通开通单群聊消息云端存储服务。如果是生产环境的 App Key,仅 IM 旗舰版IM 尊享版可开通该服务。
  • 默认情况下,用户只能查看他们加入群组后的群聊消息。开启新用户获取加入群组前历史消息服务后,新入群用户可以获取他们加入群组之前的群聊历史消息。。

客户端 SDK 使用须知

  • IMKit 默认使用用户信息提供者方式展示用户、群组和群成员信息。该方式下,客户端 SDK 不提供创建、解散、加入、退出等群组管理 API。App 需要在自己的服务端维护群组业务逻辑,并由 App 服务端调用融云服务端 API 完成群组管理操作。
  • 使用用户信息托管方式后,融云会维护托管的用户、群组和群成员资料,并提供群组管理能力。IMKit 提供对应的信息托管页面,IMLib 和融云服务端 API 提供群组创建、资料设置、成员管理、群管理员、群主转让等接口。使用旧版非托管接口创建的群组,需要先调用群组托管导入功能(托管),设置群主和群权限后,才能使用托管群组接口。
  • 如果继续使用用户信息提供者方式,融云只负责将消息传达给群组中的所有用户,不维护群组成员的资料(头像、名称、群成员名片等)。App 需要自行在业务服务器上维护相关数据,并实现 IMKit 的相关接口,向 IMKit 提供数据。参见用户信息

群组管理功能

群组管理能力取决于 App 是否使用信息托管功能。未使用信息托管时,群主、群管理员、群公告、邀请入群、群号搜索等业务逻辑需要由 App 自行实现。使用信息托管后,可以使用 IMKit 的信息托管页面、IMLib 托管接口和信息托管群组服务端 API 管理群组。

基础群组 Server API

下表列出的接口用于维护群组关系和推送所需的基础群组信息,不托管群组资料和群成员资料。

服务端 API功能描述
创建群组解散群组提供创建者用户 ID、群组 ID、和群名称,向融云服务端申请建群。如解散群组,则群成员关系不复存在。
加入群组退出群组加入群组后,默认可查看入群以后产生的新消息。退出群组后,不再接收该群的新消息。
刷新群组信息修改在融云推送服务中使用的群组信息。
查询群组成员查询指定群组所有成员的用户 ID 信息。
查询用户所在群组根据用户 ID 查询该用户加入的所有群组,返回群组 ID 及群组名称。融云不存储群组资料信息,群组资料及群成员信息需要开发者在应用服务器自行维护,如应用服务端维护的用户群组关系有缺失时,可通过此接口来核对校验。
同步用户所在群组向融云服务端同步指定用户当前所加入的所有群组,防止应用中的用户群组信息与融云服务端的用户所属群信息不一致。如果在集成融云服务前 App Server 上已有群组及成员数据,第一次连接融云服务器时,可使用此接口向融云同步已有的用户与群组对应关系。
禁言指定群成员在指定的单个群组中或全部群组中,禁言一个或多个用户。被禁言用户可以接收查看群组中其他用户消息,但不能通过客户端 SDK 发送消息。
设置群组全体禁言将群组全体成员禁言。被禁言群组的所有成员均不能发送消息,需要某些用户可以发言时,可将此用户加入到群禁言用户白名单中。
加入群组全体禁言白名单群组被整体禁言后,禁言白名单中用户可以发送群消息。

信息托管群组管理

使用信息托管功能后,可以使用托管群组管理能力。IMKit 信息托管页面从 5.12.0 版本开始支持,群管理和群管理员页面从 5.12.2 版本开始支持。具体版本要求以对应页面说明为准。

功能IMKit 客户端能力服务端 API
创建群组群组页面(托管)创建群组(托管)
解散群组群组页面(托管)解散群组(托管)
设置与查询群组资料用户信息托管方式群组页面(托管)设置群组资料(托管)批量获取群组资料(托管)
加入、退出、踢出群组群组页面(托管)加入群组(托管)退出群组(托管)踢出群组(托管)将指定用户踢出所有群组(托管)
群主管理与群管理员管理群管理页面群管理员页面转让群组(托管)设置群管理员(托管)移除群管理员(托管)
群成员资料与群成员列表群组页面(托管)分页获取群成员信息(托管)获取指定群成员信息(托管)设置群成员资料(托管)
群备注名与特别关注用户信息托管方式特别关注群成员页面设置群名称备注名(托管)设置特别关注群成员(托管)
查询群组我的群组页面分页查询应用下群组(托管)分页查询用户加入的群组(托管)
导入已有群组为托管群组不提供客户端页面群组托管导入功能(托管)