群成员管理

更新时间:2022-02-28

本文介绍如何管理群组成员。

环信即时通讯 IM Web SDK 提供以下方法用于管理群成员:

  • inviteUsersToGroup 邀请用户入群;
  • removeGroupMember 群组踢人;
  • changeGroupOwner 变更群主;
  • setGroupAdmin 添加群管理员;
  • removeAdmin 移除群管理员;
  • getGroupAdmin 获取管理员列表;
  • blockGroupMember / blockGroupMembers 添加成员至群黑名单;
  • unblockGroupMember / unblockGroupMembers 将用户移出群黑名单;
  • getGroupBlacklist 获取群黑名单列表;
  • muteGroupMember 禁言指定群成员;
  • unmuteGroupMember 将指定用户移出禁言列表;
  • getGroupMuteList 获取群禁言列表;
  • disableSendGroupMsg 开启群全员禁言;
  • enableSendGroupMsg 关闭群全员禁言;
  • addUsersToGroupWhitelist 添加成员至群白名单;
  • removeGroupWhitelistMember 将成员移出群白名单;
  • isInGroupWhiteList 检查成员是否在群白名单中;
  • getGroupWhitelist 获取群白名单列表。

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

群组加人

1、根据不同群类型,群组加人会有差别。

  • 不管是私有群还是公开群,群主和管理员均可通过 inviteUsersToGroup 加人;
  • 如果私有群放开了群成员要求,群成员也可邀请用户入群。

2、需要用户确认才能加入群。

被邀请人将会收到 invite 监听事件。

  • 如果用户同意加入群组。
    • 邀请人将会收到 invite_acceptmemberJoinPublicGroupSuccess 监听事件;
    • 其他群成员将会收到 memberJoinPublicGroupSuccess 监听事件。

3、如果不需要用户确认直接加入群组的情况。

  • 被邀请人将会收到 direct_joined 监听事件;
  • 邀请人和其他群成员将会收到 memberJoinPublicGroupSuccess 监听事件。

4、用户入群后,将可以收到群消息。

示例代码如下:

邀请人加群:

let option = {
    users: ["user1", "user2"],
    groupId: "groupId"
};
conn.inviteUsersToGroup(option).then(res => console.log(res))

群组踢人

1、管理员以上权限可以将群成员踢出群组。

2、群成员被踢出群组后,将不会再接收到群消息。

3、群成员被踢出群组后,被踢群成员将会收到 removedFromGroup 监听事件,其他成员将会收到 leaveGroup 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    username: "username"
};
conn.removeGroupMember(option).then(res => console.log(res))

变更群组所有者

群主可以将权限移交给群组中指定成员,移交后原群主权限变为成员权限,群主和新群主将会收到 changeOwner 监听事件。

let option = {
    groupId: "groupId",
    newOwner: "username"
};
conn.changeGroupOwner(option).then(res => console.log(res))

添加和移除管理员权限

添加管理员权限

管理员除了不能解散群组之外,拥有群组的绝大部分权限。添加群管理员只能由群主操作。添加群管理员后,新管理员和其他管理员将会接收到 addAdmin 监听事件。

示例代码:

let option = {
    groupId: "groupId",
    username: "user"
};
conn.setGroupAdmin(option).then(res => console.log(res))

移除管理员权限

群主移除指定群管理员的权限后,其将只拥有群成员的权限。被移除管理员的成员和其他管理员将会接收到 removeAdmin 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    username: "user"
};
conn.removeAdmin(option).then(res => console.log(res))

获取群组所有管理员

调用 getGroupAdmin 获取群组下所有管理员,示例如下:

let options = {
    // 群组 ID。
    groupId: "groupId"                 
};
conn.getGroupAdmin(options).then((res) => {
    console.log(res)
})

也可以通过 获取群组详情信息 获取管理员列表。

群组黑名单

群主及群管理员可以将群组中的指定群成员加入或者移出群黑名单。群成员被加入黑名单后将无法收发群消息。

将群成员拉入群组黑名单

示例代码如下:

let option = {
    groupId: "groupId",
    usernames: ["user1", "user2"]
};
conn.blockGroupMembers(option).then(res => console.log(res))

将群成员移出群黑名单

指定用户被群主或者群管理员移出群黑名单后,可以再次申请加入群组。

示例代码如下:

let option = {
    groupId: "groupId",
    username: ["user1", "user2"]
}
conn.unblockGroupMembers(option).then(res => console.log(res))

获取群组的黑名单用户列表

群主及群管理员可以从服务或获取群组的黑名单用户 ID 列表。

示例代码如下:

let option = {
    groupId: "groupId",
};
conn.getGroupBlacklist(option).then(res => console.log(res))

群组禁言

为了方便管理群组,环信即时通讯 IM SDK 提供了针对成员和群组的禁言操作。

将群成员加入和移出禁言列表

为了精细化管理群成员发言,群主和群成员可以根据情况将指定群成员加入或者移出群禁言列表。群成员被加入群禁言列表后,将不能够发言,即使其被加入群白名单也不能发言。

  • 将群成员加入禁言列表

群成员被群主或者群管理员加入禁言列表后,被禁言成员和其他未操作的管理员或者群主将会收到 addMute 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    username: "user",
    muteDuration: 886400000 // 禁言时长,单位为毫秒。
};
conn.muteGroupMember(option).then(res => console.log(res))
  • 将群成员移出禁言列表

群成员被群主或者群管理员移出禁言列表后,被移出的群成员及其他未操作的管理员或者群主将会收到 removeMute 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    username: "user"
};
conn.unmuteGroupMember(option).then(res => console.log(res))

获取群成员禁言列表

群主和群管理员可以获取群组的禁言列表。

示例代码如下:

let option = {
    groupId: "groupId"
};
conn.getGroupMuteList(option).then(res => console.log(res))

开启和关闭全员禁言

为了快捷管理群成员发言,群主和群成员可以开启和关闭群组全员禁言。开启群组全员禁言后,除了在群白名单中的群成员,其他成员将不能发言。

群主和群管理员开启群组全员禁言后,除了在白名单中的群成员,其他成员将不能发言。开启群组全员禁言后,群成员将会收到 muteGroup 监听事件。

示例代码如下:

let options = {
    groupId: "groupId",
};
conn.disableSendGroupMsg(options).then(res => console.log(res))

关闭全员禁言

群主和群管理员可以关闭群组全员禁言。关闭群组全员禁言后,群成员将会收到 rmGroupMute 监听事件。

示例代码如下:

let options = {
    groupId: "groupId",
};
conn.enableSendGroupMsg(options).then(res => console.log(res))

白名单管理

群主和群管理员可以将指定群成员加入或者移出群白名单,开启群组全员禁言后,白名单用户不受全员禁言限制。如果白名单用户在群禁言列表中,该用户也不能发言。

添加用户到白名单

群成员被群主或者群管理员添加到群白名单后,该群成员及其他未操作的群管理员和群主将会收到 addUserToGroupWhiteList 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    users: ["user1", "user2"]
};
conn.addUsersToGroupWhitelist(option).then(res => console.log(res));

将用户移出白名单

群成员被群主或者群管理员移出群白名单后,该群成员及其他未操作的群管理员和群主将会收到 rmUserFromGroupWhiteList 监听事件。

示例代码如下:

let option = {
    groupId: "groupId",
    userName: "user"
}
conn.removeGroupWhitelistMember(option).then(res => console.log(res));

检查自己是否在白名单中

用户可以调用如下 API 检查群成员是否在群白名单中。 应用的管理员可查询所有用户,而普通用户只能查询自己:

示例代码如下:

let option = {
    groupId: "groupId",
    userName: "user"
}
conn.isInGroupWhiteList(option).then(res => console.log(res));

获取白名单成员列表

群主和群管理员可以获取群组白名单列表。

示例代码如下:

let options = {
    groupId: "groupId"
}
conn.getGroupWhitelist(options).then(res => console.log(res));