群组管理
本文档旨在指导开发者如何使用融云即时通讯 Web IMLib SDK 实现创建群组、群组资料设置、踢出群组、退出群组、解散群组、转让群组等功能。
提示
- 此功能从 5.12.0 版本开始支持。
- 针对已经通过原群组功能接口/group/create.json 创建的群组,默认不支持调用群托管的相关功能接口,需要调用群组托管导入接口,设置群组所有者(群主)及群组的默认权限后才能使用。
开通服务
信息托管服务已默认开通,您可以直接使用此功能。
群组操作
群组操作事件通知
群组操作包含:创建群组、群组资料设置、踢出群组、退出群组、解散群组、群组转让。可以通过 IGroupOperationInfo 中的 operation 来区分操作类型。
提示
- 事件监听器应全局注册,且仅注册一次,避免重复接收事件通知。
- 事件回调数据类型为 IGroupOperationInfo。
示例代码
javascript
RongIMLib.addEventListener(Events.GROUP_OPERATION, (data) => {
// data 为 IGroupOperationInfo 类型,通过 operation 来判断操作类型
console.log('群组操作变更', data);
});
群组资料变更通知
调用 updateGroupInfo 方法,成功更新群资料后,群内所有成员将收到 Events.GROUP_INFO_CHANGED
事件。
提示
- 事件监听器应全局注册,且仅注册一次,避免重复接收事件通知。
- 事件回调数据类型为 IGroupInfoChanged。
- 通知数据仅包含发生变更的字段,未修改的字段不会包含在事件数据中
示例代码
javascript
RongIMLib.addEventListener(Events.GROUP_INFO_CHANGED, (data) => {
console.log('群组资料变更通知', data);
});
创建群组
调用 createGroup 方法可创建新群组。
接口
JavaScript
RongIMLib.createGroup(groupInfo, inviteeUserIds)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
groupInfo | IGroupInfoOption | 是 | 群组信息。 |
inviteeUserIds | string[] | 否 | 可选邀请成员列表,最多 30 人。为空表示不邀请成员 |
- groupInfo 参数说明:
属性名 | 类型 | 必填 | 描述 |
---|---|---|---|
groupId | string | 是 | 群组 ID:最大长度 64 个字符。支持大小写英文字母与数字的组合。 |
groupName | string | 是 | 群组名称:最大长度 64 个字符。不可设置为纯空格。 |
portraitUri | string | 否 | 群头像 URL 地址:长度不超过 128 个字符。 |
introduction | string | 否 | 群简介:最大长度不超过 512 个字符。 |
notice | string | 否 | 群公告:最大长度不超过 1024 个字符。 |
extProfile | {[key: string]: string} | 否 | 扩展信息:在现在群信息基础上,开发者可根据自身业务需求添加自定义扩展属性(Key、Value),最多可设置 10 个扩展信息。 自定义属性需要通过开发者后台或 API 设置后才能使用,否则返回设置失败。 |
joinPermission | GroupJoinPermission | 否 | 主动加入群权限:不用验证、群主验证(默认)、群管理员及群主验证、不允许任何人加入,不设置按默认值处理。 |
removeMemberPermission | GroupOperationPermission | 否 | 将群成员移出群组权限:群主(默认)、群主+群管理员、所有人,不设置按默认值处理。 |
invitePermission | GroupOperationPermission | 否 | 谁可以邀请他人入群:群主(默认)、群主+群管理员、所有人,不设置按默认值处理。 |
inviteHandlePermission | GroupInviteHandlePermission | 否 | 邀请加入群组处理方式:不需要被邀请人同意(默认)、需要被邀请人同意,不设置按默认值处理。 |
groupInfoEditPermission | GroupOperationPermission | 否 | 修改群资料及权限:群主(默认)、群主+群管理员、所有人,不设置按默认值处理。。该属性仅支持群主修改 |
memberInfoEditPermission | GroupMemberInfoEditPermission | 否 | 设置 群成员资料:仅自已、群主+自已、群主+群管理员+自已(默认),不设置按默认值处理。 |
示例代码
javascript
const groupInfo = {
// 必填,最大长度 64 个字符。支持大小写英文字母与数字的组合
groupId: 'group001',
// 必填,最大长度 64 个字符
groupName: 'groupName',
// 自定义属性需要通过开发者后台或 API 设置后才能使用,否则返回设置失败
extProfile: {},
};
const memberIdsArr = ['userId001', 'userId002'];
const res = await RongIMLib.createGroup(groupInfo, memberIdsArr);
console.info('创建群组结果', res);