创建与使用消息群组

更新时间:2025-01-24 05:48:35

本文将介绍如何通过接口创建和使用消息群组。

前提条件

  • 已开通互动消息服务。

  • 客户端登录成功后,就可以发送1v1消息。要进入群组,需要确保群组已存在。群组创建有两种方式:

最佳实践

  1. 规划GroupID。

    • 确保在您的AppID下,每个GroupID是唯一的。

    • 建议将GroupID与业务直播间的ID通过某种规则进行关联(如遇不允许的字符,可使用Base64编码)。

    • 只需知道直播间ID,即可计算出对应的互动消息GroupID,无需额外记录查询。

  2. 在特定业务场景中,合理利用GroupInfoGroupMeta对于高效管理群组公告和状态信息至关重要。客户端与服务端在调用相关接口时采用了不同的命名方式:

    • 服务端通过OpenAPI接口访问时,命名为groupInfo

    • 在客户端的应用程序接口中,命名为groupMeta

    1. 当客户端通过调用 joingroup 方法加入群组时,系统都会返回包含群组元数据(groupMeta)的响应信息 ImJoinGroupRsp

      一旦成功加入群组,即可获得相关信息。

      ImJoinGroupReq req = new ImJoinGroupReq();
      req.groupId = groupId;
      groupInterface.joinGroup(req, new ImSdkValueCallback<ImJoinGroupRsp>() {
          @Override
          public void onSuccess(ImJoinGroupRsp data) {
              
          }
      
          @Override
          public void onFailure(Error error) {
      	}
      });
    2. 提供以下修改群组接口。

    3. 当群组信息发生更改时,系统会通过监听群组变更消息接口,实时将这些变更推送给已加入该群组的所有客户端。所有订阅群组状态更新的用户都能即时接收到最新的变动通知,确保用户能够同步了解到群组内的最新情况。

      //监听群组
      groupManager.addGroupListener(new ImGroupListener() {
          @Override
          public void onMemberChange(String groupId, int memberCount, ArrayList<ImUser> joinUsers, ArrayList<ImUser> leaveUsers) {
              
          }
          @Override
          public void onExit(String groupId, int reason) {
          }
          @Override
          public void onMuteChange(String groupId, ImGroupMuteStatus status) {
          }
          @Override
          public void onInfoChange(String groupId, ImGroupInfoStatus info) {
          }
      });
    4. 该信息的定义是开放式的字符串,您可以根据自身的业务需求自定义其格式,以实现您的业务协议。

  3. 群组创建者与管理员。

    • 群组创建者

      • 使用客户端接口创建群组时,当前用户即为群组创建者。

      • 使用服务端接口创建群组时,创建者在调用时指定。

    • 群组管理员

      群组创建者和管理员拥有特定的群组权限能力,允许执行以下操作:

      • 修改群组信息

      • 禁言成员

      • 删除群组

        重要
        • 创建群组时,即使用户的 role 为 "admin",这并不等同于群组管理员或创建者的权限。

        • 只有群组的创建者或管理员才能执行上述操作。如果用户不是该群的创建者或管理员,则无法修改、禁言或删除群组。

  • 本页导读 (1)
  • 前提条件
  • 最佳实践