管理聊天室成员

更新时间:2022-02-28

环信即时通讯 IM SDK 提供以下方法,支持对聊天室成员的管理,包括添加、移除聊天室成员等:

  • getChatRooms 获取聊天室成员列表;
  • getChatRoomBlacklist 获取聊天室黑名单列表;
  • blockChatRoomMembers 将成员添加到聊天室黑名单;
  • unblockChatRoomMembers 将用户移出聊天室黑名单;
  • getChatRoomWhitelist 获取聊天室白名单列表;
  • isChatRoomWhiteUser 查看自己是否在聊天室白名单中;
  • addUsersToChatRoomWhitelist 添加用户至白名单;
  • removeChatRoomWhitelistMember 将用户移出白名单;
  • getChatRoomMuteList 获取聊天室禁言列表;
  • muteChatRoomMember 禁言;
  • unmuteChatRoomMember 解除禁言;
  • disableSendChatRoomMsg 设置全员禁言;
  • enableSendChatRoomMsg 解除全员禁言;
  • setChatRoomAdmin 添加聊天室管理员;
  • removeChatRoomAdmin 移除聊天室管理员。

开始前,请确保满足以下条件:

管理聊天室成员

获取聊天室成员列表

所有成员都可以调用 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))