加入群组管理
本文档旨在指导开发者如何使用融云即时通讯 Web IMLib SDK 实现以下群组相关功能:
- 主动申请加入群组
- 邀请用户加入群组
- 用户处理入群邀请(同意或拒绝)
- 群组管理员处理入群申请(同意或拒绝)
- 分页获取群申请列表
该功能从 5.12.0 版本开始支持。
开通服务
信息托管服务已默认开通,您可以直接使用此功能。
用户申请或邀请事件及结果回调
用户可以通过主动调用 joinGroup 接口申请加入群组,或由群内成员调用 inviteUsersToGroup 接口邀请用户加入群组。相关的申请或邀请事件及其处理结果可通过 Events.GROUP_APPLICATION_EVENT 事件监听,返回的数据类型为 IGroupApplicationInfo。
示例代码
RongIMLib.addEventListener(Events.GROUP_APPLICATION_EVENT, (data) => {
console.log('用户申请或邀请事件及结果回调', data);
});
加入群组管理
加入群组管理包括:主动加入群组、邀请他人加入群组、用户处理入群邀请、群主或管理员处理入群申请等功能。
主动加入群组
您可以调用 joinGroup 方法主动申请加入指定群组。
接口调用结果受群组的 GroupJoinPermission 权限设置影响,具体如下:
-
需要群主或管理员审批: 接口调用成功后,
processCode返回 25424,表示需等待群主或管理员审批。申请用户及群主或管理员将收到Events.GROUP_APPLICATION_EVENT事件回调。 -
无需审批:接口调用成功后,
processCode返回 0,表示成功加入群组。申请用户及群内所有成员将收到Events.GROUP_OPERATION事件回调,事件中的 operation=1(GroupOperation.JOIN )。 -
不允许任何人加入:无法通过
joinGroup接口加入群组。
接口
RongIMLib.joinGroup(groupId)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
groupId | string | 是 | 群组 ID。 |
示例代码
// 必填,最大长度 64 个字符。支持大小写英文字母与数字的组合
const groupId = 'group001';
const res = await RongIMLib.joinGroup(groupId);
console.info('加入群组结果', res);
邀请他人加入群组
邀请他人加入群组的操作受群组邀请权限 GroupOperationPermission 控制,只有具有相应权限的用户才能发起邀请。
具有邀请权限的用户可调用 inviteUsersToGroup 方法邀请他人加入群组。
接口
RongIMLib.inviteUsersToGroup(groupId, userIds)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
groupId | string | 是 | 群组 ID。 |
userIds | string[] | 是 | 用户 ID 数组,最多支持 30 个用户。 |
示例代码
const groupId = 'group001'; // 群组 ID
const userIds = ['user001', 'user002']; // 用户 ID 数组,最多支持 30 个用户
const res = await RongIMLib.inviteUsersToGroup(groupId, userIds);
console.info('邀请用户加入群组结果', res);
邀请流程受以下因素影响:
- 加入权限(
GroupJoinPermission):是否需要群主或管理员审批。 - 邀请人角色(
GroupOperationPermission):邀请人是群主或管理员,还是普通用户。 - 被邀请人处理权限(
GroupInviteHandlePermission):是否需要被邀请人同意才能加入群组。
邀请规则
下表中默认了群组的邀请权限 GroupOperationPermission 为 Everyone,即所有人都可以邀请他人加入群组。
开发中可以根据实际情况设置不同的权限。
| 加入权限 | 邀请人角色 | 被邀请人审批 | 事件流程 |
|---|---|---|---|
| 需要群主/管理员审批 | 普通用户 | 需要 | 流程 A |
| 不需要 | 流程 B | ||