Skip to main content

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

ParameterTypeRequiredDescription
groupIdstringYesGroup ID to query
roleGroupMemberRoleYesRole filter. Supported values include UNDEF, NORMAL, MANAGER, and OWNER.
pageSizenumberNoNumber of members to return per page. Default: 20.
isAscendingbooleanNoWhether to sort the result in ascending order.
filterRobotTypeGroupMemberFilterRobotTypeNoOptional robot-member filter.

Return value

loadNextPage() returns Promise<NCResult<PageResult<IGroupMemberInfo>>>.

FieldTypeDescription
data.dataIGroupMemberInfo[]Member info list for the current page
data.totalCountnumberTotal 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

ParameterTypeRequiredDescription
userIdstringYesTarget member user ID
nicknamestringYesGroup-specific nickname for the member
extrastringNoExtra 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

ParameterTypeRequiredDescription
userIdsstring[]YesUser 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

ParameterTypeRequiredDescription
userIdsstring[]YesUser IDs to demote from manager
info

Only the channel owner can add or remove managers. Managers can perform administrative actions such as kicking members.