本文将介绍如何通过接口创建和使用消息群组。
前提条件
已开通互动消息服务。
客户端登录成功后,就可以发送1v1消息。要进入群组,需要确保群组已存在。群组创建有两种方式:
使用服务端OpenAPI接口创建群组
API接口:CreateLiveMessageGroup - 创建直播互动群组
如何在您的业务服务集成服务端SDK请参见互动消息服务端SDK集成。
通过服务端SDK调用相关功能,您需要提供RAM身份的AccessKey。请参见创建RAM用户并授权创建一个RAM用户,并为该用户授权账号所需的视频直播权限,生成子账号的AccessKey。请注意妥善保管好您的AccessKey信息,避免泄露。
客户端登录后,调用客户端SDK创建群组
Android SDK接口:管理员操作:创建群组。其他客户端SDK请参见客户端接入。
产生登录Token使用的Role 为
admin
。
最佳实践
规划GroupID。
确保在您的AppID下,每个GroupID是唯一的。
建议将GroupID与业务直播间的ID通过某种规则进行关联(如遇不允许的字符,可使用Base64编码)。
只需知道直播间ID,即可计算出对应的互动消息GroupID,无需额外记录查询。
在特定业务场景中,合理利用GroupInfo或GroupMeta对于高效管理群组公告和状态信息至关重要。客户端与服务端在调用相关接口时采用了不同的命名方式:
服务端通过OpenAPI接口访问时,命名为
groupInfo
。在客户端的应用程序接口中,命名为
groupMeta
。
当客户端通过调用
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) { } });
提供以下修改群组接口。
客户端SDK:修改群组 。
该接口仅限群组管理员或群组创建者操作。
当群组信息发生更改时,系统会通过监听群组变更消息接口,实时将这些变更推送给已加入该群组的所有客户端。所有订阅群组状态更新的用户都能即时接收到最新的变动通知,确保用户能够同步了解到群组内的最新情况。
//监听群组 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) { } });
该信息的定义是开放式的字符串,您可以根据自身的业务需求自定义其格式,以实现您的业务协议。
群组创建者与管理员。
群组创建者:
使用客户端接口创建群组时,当前用户即为群组创建者。
使用服务端接口创建群组时,创建者在调用时指定。
群组管理员:
群组创建者和管理员拥有特定的群组权限能力,允许执行以下操作:
修改群组信息
禁言成员
删除群组
创建群组时,即使用户的
role
为 "admin",这并不等同于群组管理员或创建者的权限。只有群组的创建者或管理员才能执行上述操作。如果用户不是该群的创建者或管理员,则无法修改、禁言或删除群组。
- 本页导读 (1)
- 前提条件
- 最佳实践