Manage chat group members
Updated
Introduces chat group functionalities.
Chat groups enable real-time messaging among multiple users.
This page shows how to use the Chat SDK to manage the members of a chat group in your app.
Understand the tech
The Chat SDK provides the ChatGroup, ChatGroupManager, and ChatGroupEventListener classes for chat group management, which allows you to implement the following features:
Prerequisites
Before proceeding, ensure that you meet the following requirements:
- You have initialized the Chat SDK. For details, see SDK quickstart.
- You understand the call frequency limits of the Chat APIs supported by different pricing plans as described in Limitations.
- You understand the number of chat groups and chat group members supported by different pricing plans as described in Pricing Plan Details.
Implementation
This section describes how to call the APIs provided by the Chat SDK to implement chat group features.
Add a user to a chat group
The logic of adding a user to a chat group varies according to the GroupStyle and inviteNeedConfirm settings when creating the chat group. For details, see Create a Chat Group.
The following code sample shows how to call addMembers to add a user to a chat group:
const groupId = "100";
const members = ["Tom", "Json"];
const welcome = "Welcome to you";
ChatClient.getInstance()
.groupManager.addMembers(groupId, members, welcome)
.then(() => {
console.log("add members success.");
})
.catch((reason) => {
console.log("add members fail.", reason);
});Remove a member from a chat group
Only the chat group owner and admins can call removeMembers to remove one or more members from a chat group. Once removed from the chat group, the member receives the ChatGroupEventListener#onUserRemoved callback, while all the other members receive the ChatGroupEventListener#onMembersExited callback. Users can join the chat group again after being removed.
The following code sample shows how to remove a member from a chat group:
ChatClient.getInstance()
.groupManager.removeMembers(groupId, members)
.then(() => {
console.log("remove members success.");
})
.catch((reason) => {
console.log("remove members fail.", reason);
});Manage the chat group owner and admins
Transfer the chat group ownership
Only the chat group owner can call changeOwner to transfer the ownership to the specified chat group member. Once the ownership is transferred, the former chat group owner becomes a regular member, and the new owner receives the ChatGroupEventListener#OnOwnerChanged callback.
The following code sample shows how to transfer the chat group ownership:
ChatClient.getInstance()
.groupManager.changeOwner(groupId, newOwner)
.then(() => {
console.log("change owner success.");
})
.catch((reason) => {
console.log("change owner fail.", reason);
});Add a chat group admin
Only the chat group owner can call addAdmin to add an admin. Once promoted to an admin, the new admin and the other chat group admins receive the ChatGroupEventListener#OnAdminAdded callback.
The following code sample shows how to add a chat group admin:
ChatClient.getInstance()
.groupManager.addAdmin(groupId, memberId)
.then(() => {
console.log("add admin success.");
})
.catch((reason) => {
console.log("add admin fail.", reason);
});Remove a chat group admin
Only the chat group owner can call removeAdmin to remove an admin. Once demoted to a regular member, the former admin and the other chat group admins receive the ChatGroupEventListener#OnAdminRemoved callback.
The following code sample shows how to remove a chat group admin:
ChatClient.getInstance()
.groupManager.removeAdmin(groupId, memberId)
.then(() => {
console.log("remove admin success.");
})
.catch((reason) => {
console.log("remove admin fail.", reason);
});Manage the chat group blocklist
Add a member to the chat group blocklist
Only the chat group owner and admins can call blockMembers to add the specified member to the chat group blocklist. Once added to the blocklist, this member receives the ChatGroupEventListener#onUserRemoved callback, while all the other members receive the ChatGroupEventListener#onMembersExited callback. After being added to blocklist, this user cannot send or receive messages in the chat group. They can no longer join the chat room until they are removed from the blocklist.
The following code sample shows how to add a member to the chat group blocklist:
ChatClient.getInstance()
.groupManager.blockMembers(groupId, members)
.then(() => {
console.log("block members success.");
})
.catch((reason) => {
console.log("block members fail.", reason);
});Remove a member from the chat group blocklist
Only the chat group owner and admins can call unblockMembers to remove the specified member from the chat group blocklist.
The following code sample shows how to remove a member from the chat group blocklist:
ChatClient.getInstance()
.groupManager.unblockMembers(groupId, members)
.then(() => {
console.log("unblock members success.");
})
.catch((reason) => {
console.log("unblock members fail.", reason);
});Retrieve the chat group blocklist
Only the chat group owner and admins can call fetchBlockListFromServer to retrieve the chat group blocklist.
The following code sample shows how to retrieve the chat group blocklist:
ChatClient.getInstance()
.groupManager.fetchBlockListFromServer(groupId, pageSize, pageNum)
.then((list) => {
console.log("get block members success: ", list);
})
.catch((reason) => {
console.log("get block members fail.", reason);
});Manage the chat group mute list
Add a member to the chat group mute list
Only the chat group owner and admins can call muteMembers to add the specified member to the chat group mute list. Once added to the mute list, this member and all the other chat group admins or owner receive the ChatGroupEventListener#onMuteListAdded callback. Once a chat group member is added to the chat group mute list, they can no longer send chat group messages, not even after being added to the chat group allow list.
The following code sample shows how to add a member to the chat group mute list:
// duration: The mute duration. If you pass `-1`, members are muted permanently.
ChatClient.getInstance()
.groupManager.muteMembers(groupId, members, duration)
.then(() => {
console.log("mute members success.");
})
.catch((reason) => {
console.log("mute members fail.", reason);
});Remove a member from the chat group mute list
Only the chat group owner and admins can call unMuteMembers to remove the specified member from the chat group mute list. Once removed from the chat group mute list, this member and all the other chat group admins or owner receive the ChatGroupEventListener#onMuteListRemoved callback.
The following code sample shows how to remove a member from the chat group mute list:
ChatClient.getInstance()
.groupManager.unMuteMembers(groupId, members)
.then(() => {
console.log("unMute members success.");
})
.catch((reason) => {
console.log("unMute members fail.", reason);
});Retrieve the chat group mute list
Only the chat group owner and admins can call fetchMuteListFromServer to retrieve the chat group mute list from the server.
The following code sample shows how to retrieve the chat group mute dictionary:
ChatClient.getInstance()
.groupManager.fetchMuteListFromServer(groupId, pageSize, pageNum)
.then((list) => {
console.log("get mute list success: ", list);
})
.catch((reason) => {
console.log("get mute list fail.", reason);
});Mute and unmute all the chat group members
Mute all the chat group members
Only the chat group owner and admins can call muteAllMembers to mute all the chat group members. All members in the group can receive the ChatGroupEventListener#onAllGroupMemberMuteStateChanged event.
Once all the members are muted, only those in the chat group allow list can send messages in the chat group.
Unlike muting a chat group member, this kind of mute does not expire automatically after a certain period and you need to call the unMuteAllMembers method to unmute all members in the chat group.
The following sample code shows how to mute all the chat group members:
ChatClient.getInstance()
.groupManager.muteAllMembers(groupId)
.then(() => {
console.log("mute all members success.");
})
.catch((reason) => {
console.log("mute all members fail.", reason);
});Unmute all the chat group members
Only the chat group owner and admins can call unMuteAllMembers to unmute all the chat group members. All members in the group can receive the ChatGroupEventListener#onAllGroupMemberMuteStateChanged event.
The following sample code shows how to unmute all the chat group members:
ChatClient.getInstance()
.groupManager.unMuteAllMembers(groupId)
.then(() => {
console.log("unMute all members success.");
})
.catch((reason) => {
console.log("unMute all members fail.", reason);
});Manage the chat group allow list
The chat group owner and admins are added to the chat group allow list by default.
Add a member to the chat group allow list
Only the chat group owner and admins can call addAllowList to add the specified member to the chat group allow list. Members in the chat group allow list can send chat group messages even when the chat group owner or admin has muted all chat group members. However, if a member is already in the chat group mute list, this member still cannot send messages in the group even after being added to the group allow list.
The following code sample shows how to add a member to the chat group allow list:
ChatClient.getInstance()
.groupManager.addAllowList(groupId, members)
.then(() => {
console.log("add white list success.");
})
.catch((reason) => {
console.log("add white list fail.", reason);
});Remove a member from the chat group allow list
Only the chat group owner and admins can call removeAllowList to remove the specified member from the chat group allow list.
The following code sample shows how to remove a member from the chat group allow list:
ChatClient.getInstance()
.groupManager.removeAllowList(groupId, members)
.then(() => {
console.log("remove white list success.");
})
.catch((reason) => {
console.log("remove white list fail.", reason);
});Check whether a user is added to the allow list
All chat group members can call isMemberInAllowListFromServer to check whether they are added to the chat group allow list.
The following code sample shows how to check whether a user is on the chat group allow list:
ChatClient.getInstance()
.groupManager.isMemberInAllowListFromServer(groupId)
.then((isMember) => {
console.log("is member success: ", isMember);
})
.catch((reason) => {
console.log("is member fail.", reason);
});Retrieve the chat group allow list
Only the chat group owner and admins can call fetchAllowListFromServer to retrieve the chat group allow list.
The following code sample shows how to retrieve the chat group allow list:
ChatClient.getInstance()
.groupManager.fetchAllowListFromServer(groupId)
.then(() => {
console.log("get white list success.");
})
.catch((reason) => {
console.log("get white list fail.", reason);
});Listen for chat group events
For details, see Chat Group Events.
