管理聊天室成员
更新时间:2022-02-28
技术原理
环信即时通讯 IM SDK 提供以下方法,支持对聊天室成员的管理,包括添加、移除聊天室成员等:
getChatRooms
获取聊天室成员列表;getChatRoomBlacklist
获取聊天室黑名单列表;blockChatRoomMembers
将成员添加到聊天室黑名单;unblockChatRoomMembers
将用户移出聊天室黑名单;getChatRoomWhitelist
获取聊天室白名单列表;isChatRoomWhiteUser
查看自己是否在聊天室白名单中;addUsersToChatRoomWhitelist
添加用户至白名单;removeChatRoomWhitelistMember
将用户移出白名单;getChatRoomMuteList
获取聊天室禁言列表;muteChatRoomMember
禁言;unmuteChatRoomMember
解除禁言;disableSendChatRoomMsg
设置全员禁言;enableSendChatRoomMsg
解除全员禁言;setChatRoomAdmin
添加聊天室管理员;removeChatRoomAdmin
移除聊天室管理员。
前提条件
开始前,请确保满足以下条件:
- 完成 SDK 初始化,详见 快速开始;
- 了解环信即时通讯 IM 的使用限制,详见 使用限制;
- 了解环信即时通讯 IM 聊天室不同套餐相关限制,详见 环信即时通讯 IM 价格。
实现方法
管理聊天室成员
获取聊天室成员列表
所有成员都可以调用 listChatRoomMember
获取当前聊天室成员列表。
注意
聊天室创建者、管理员和普通成员都可以调用该接口。
示例代码如下:
let option = {
pageNum: 1,
pageSize: 10,
chatRoomId: 'chatRoomId'
}
conn.listChatRoomMember(option).then(res => console.log(res))
获取聊天室黑名单列表
管理员可以调用 getChatRoomBlacklist
获取当前聊天室黑名单成员列表。
注意
仅聊天室所有者和管理员可调用该接口。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
};
conn.getChatRoomBlacklist(option);
添加用户至聊天室黑名单
管理员可调用 blockChatRoomMembers
将成员加入聊天室黑名单。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 被加入黑名单的成员会收到
removedFromGroup
的监听事件; - 黑名单中的成员需要聊天室所有者从黑名单中移除后,才能再次加入聊天室。
示例代码如下:
let option = {
chatRoomId: 'chatRoomId',
usernames: ['user1', 'user2'] // 用户 ID 数组。
};
conn.blockChatRoomMembers(option).then(res => console.log(res));
将用户移出聊天室黑名单
管理员可调用该 unblockChatRoomMembers
将成员移出聊天室黑名单。
注意
仅聊天室所有者和管理员可调用该接口。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
usernames: ["user1", "user2"] // 用户 ID 数组。
}
conn.unblockChatRoomMembers(option).then(res => console.log(res));
获取聊天室白名单列表
管理员可调用 getChatRoomWhitelist
获取当前聊天室白名单成员列表。
注意
仅聊天室所有者和管理员可调用该接口。
示例代码如下:
let option = {
chatRoomId: "chatRoomId"
}
conn.getChatRoomWhitelist(option).then(res => console.log(res));
查看自己是否在聊天室白名单中
用户可以调用 isChatRoomWhiteUser
检查自己是否在群白名单中。
注意
应用的管理员可查询所有用户,普通用户可查询自己。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
userName: "user"
}
conn.isChatRoomWhiteUser(option);
添加白名单
管理员可调用 addUsersToChatRoomWhitelist
将成员添加至聊天室白名单。
注意
仅聊天室所有者和管理员可调用该接口。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
users: ["user1", "user2"] // 成员 ID 列表。
};
conn.addUsersToChatRoomWhitelist(option);
移除白名单
管理员可调用 removeChatRoomWhitelistMember
将成员移出聊天室白名单。
注意
仅聊天室所有者和管理员可调用该接口。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
userName: "user"
}
conn.removeChatRoomWhitelistMember(option);
管理禁言
获取聊天室被禁言列表
管理员可调用 getChatRoomMuteList
获取聊天室被禁言列表。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 权限高者可禁言权限低者,反之不允许。
示例代码如下:
let option = {
chatRoomId: "chatRoomId"
};
conn.getChatRoomMuteList(option).then(res => console.log(res))
禁言
管理员可调用 muteChatRoomMember
将成员禁言。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 权限高者可禁言权限低者,反之不允许;
- 聊天室成员会收到
addMute
监听事件。
示例代码如下:
let option = {
chatRoomId: "chatRoomId", // 聊天室 ID。
username: 'username', // 被禁言的聊天室成员的 ID。
muteDuration: -1000 // 禁言时长,单位为毫秒。若传 “-1,000” 表示永久。
};
conn.muteChatRoomMember(option).then(res => console.log(res))
解除禁言
管理员调用 unmuteChatRoomMember
将一组成员解除禁言。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 权限高者可禁言权限低者,反之不允许;
- 聊天室成员会收到
removeMute
监听事件。
示例代码如下:
let option = {
chatRoomId: "chatRoomId",
username: 'username'
};
conn.unmuteChatRoomMember(option).then(res => console.log(res))
设置全员禁言
管理员可调用 disableSendChatRoomMsg
设置全员禁言。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 设置全员禁言后,仅在白名单中的成员可以发言;
- 聊天室成员会收到
muteChatRoom
监听事件。
示例代码如下:
let option = {
chatRoomId: "chatRoomId"
};
conn.disableSendChatRoomMsg(option).then(res => console.log(res))
解除全员禁言
管理员调用 enableSendChatRoomMsg
设置解除全员禁言。
注意
- 仅聊天室所有者和管理员可调用该接口;
- 解除全员禁言后,仅在黑名单中的成员不可以发言;
- 聊天室成员会收到
rmChatRoomMute
监听事件。
示例代码如下:
let option = {
chatRoomId: "chatRoomId"
};
conn.enableSendChatRoomMsg(option).then((res) => {
console.log(res)
})
管理管理员
添加聊天室管理员
聊天室所有者可调用 setChatRoomAdmin
添加聊天室管理员。
注意
- 聊天室的所有者仅有一人;
- 仅聊天室所有者可调用该接口;
- 聊天室成员会收到
addAdmin
监听事件。
示例代码如下:
let option = {
chatRoomId: 'chatRoomId',
username: 'user1'
}
conn.setChatRoomAdmin(option).then(res => console.log(res))
移除聊天室管理员
所有者调用该接口可以移除聊天室管理员。
注意
- 聊天室的所有者仅有一人;
- 仅聊天室所有者可调用该接口;
- 聊天室成员会收到
removeAdmin
的监听事件。
示例代码如下:
let option = {
chatRoomId: 'chatRoomId',
username: 'user1'
}
conn.removeChatRoomAdmin(option).then(res => console.log(res))