Channel member management
Manage channel members, roles, and member information.
Get member info by user IDs
Get detailed info for specific channel members by their user IDs:
TypeScript
import { GroupChannel } from '@nexconn/chat';
const channel = new GroupChannel('<group-id>');
const { code, data: members } = await channel.getMembers(['user1', 'user2']);
if (code === 0) {
console.log('Member info:', members);
}
Get members by role
Use a query to retrieve members by role with pagination:
TypeScript
import { GroupChannel, GroupMemberRole } from '@nexconn/chat';
const query = GroupChannel.createGroupMembersByRoleQuery({
groupId: '<group-id>',
role: GroupMemberRole.NORMAL,
pageSize: 20,
});
const { code, data: page } = await query.loadNextPage();
if (code === 0) {
console.log('Members:', page.data);
console.log('Total count:', page.totalCount);
}
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
groupId | string | Yes | Group ID to query |
role | GroupMemberRole | Yes | Role filter. Supported values include UNDEF, NORMAL, MANAGER, and OWNER. |
pageSize | number | No | Number of members to return per page. Default: 20. |
isAscending | boolean | No | Whether to sort the result in ascending order. |
filterRobotType | GroupMemberFilterRobotType | No | Optional robot-member filter. |
Return value
loadNextPage() returns Promise<NCResult<PageResult<IGroupMemberInfo>>>.
| Field | Type | Description |
|---|---|---|
data.data | IGroupMemberInfo[] | Member info list for the current page |
data.totalCount | number | Total number of members returned by the server for this query |
Set member info
Update a member's group-specific display name and extra info:
TypeScript
import { GroupChannel } from '@nexconn/chat';
const channel = new GroupChannel('<group-id>');
const { code } = await channel.setMemberInfo({
userId: '<member-user-id>',
nickname: 'New Nickname',
extra: JSON.stringify({ title: 'Moderator' }),
});
if (code === 0) {
console.log('Member info updated');
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | Target member user ID |
nickname | string | Yes | Group-specific nickname for the member |
extra | string | No | Extra member info stored as a string |
Return value
setMemberInfo() returns Promise<NCResult<IErrorKeys>>. When field-level validation fails, data contains the related error keys.
Add group managers
TypeScript
import { GroupChannel } from '@nexconn/chat';
const channel = new GroupChannel('<group-id>');
const { code } = await channel.addManagers(['user1', 'user2']);
if (code === 0) {
console.log('Managers added');
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userIds | string[] | Yes | User IDs to promote to manager |
Remove group managers
TypeScript
import { GroupChannel } from '@nexconn/chat';
const channel = new GroupChannel('<group-id>');
const { code } = await channel.removeManagers(['user1']);
if (code === 0) {
console.log('Manager removed');
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userIds | string[] | Yes | User IDs to demote from manager |
info
Only the channel owner can add or remove managers. Managers can perform administrative actions such as kicking members.