Browse SDKs · HarmonyOS
Platform
SDKsHarmonyOSEnterprise

Retrieve group member list

Paginate and filter group members by role within a specified group.

Copy

Use this method to build member rosters and optionally filter by member roles using filter.

Parameters

ParameterTypeRequiredDescription
groupIDstringYesTarget group identifier.
filterGroupMemberFilterYesMember role filter criteria.
pagination.pageNumbernumberYesPage number, starting from 1.
pagination.showNumbernumberYesNumber of records to return per page.

Code example

import sdk, {
  EventOnGroupMemberAddedData,
  EventOnGroupMemberDeletedData,
  EventOnGroupMemberInfoChangedData,
  GetGroupMembersReq,
  GetGroupMembersResp,
  GroupMemberFilter,
  OpenIMSDKEvent,
} from '@openimsdk/imsdk';

const request: GetGroupMembersReq = {
  groupID: groupID,
  filter: GroupMemberFilter.All,
  pagination: { pageNumber: 1, showNumber: 50 },
};
const response: GetGroupMembersResp = await sdk.getGroupMembers(request);
const members = response.members;

const handleMemberAdded = (data: EventOnGroupMemberAddedData): void => {
  upsertGroupMember(data.member);
};
const handleMemberDeleted = (data: EventOnGroupMemberDeletedData): void => {
  removeGroupMember(data.member.groupID, data.member.userID);
};
const handleMemberChanged = (data: EventOnGroupMemberInfoChangedData): void => {
  upsertGroupMember(data.member);
};

const unsubscribeMemberAdded = sdk.on(OpenIMSDKEvent.EventOnGroupMemberAdded, handleMemberAdded);
const unsubscribeMemberDeleted = sdk.on(
  OpenIMSDKEvent.EventOnGroupMemberDeleted,
  handleMemberDeleted,
);
const unsubscribeMemberChanged = sdk.on(
  OpenIMSDKEvent.EventOnGroupMemberInfoChanged,
  handleMemberChanged,
);

export function removeGroupMemberListeners(): void {
  unsubscribeMemberAdded();
  unsubscribeMemberDeleted();
  unsubscribeMemberChanged();
}

GroupMemberFilter supports filtering by all members, owner, administrators, regular members, administrators with regular members, and owner with administrators. Member records use groupID:userID as their stable unique key. When members are added or removed during pagination, reset the pagination state and reload from the first page.

Return value

Returns a Promise resolving to GetGroupMembersResp. response.members contains an array of member records with the following primary fields:

FieldTypeDescription
groupID, userIDstringJointly uniquely identify a member record.
nickname, faceURLstringIn-group member nickname and avatar URL.
roleLevelGroupMemberRoleLevelRole level: ordinary member, administrator, or owner.
muteEndTimenumberMute expiration time as a Unix millisecond timestamp.
joinTimenumberMember join time as a Unix millisecond timestamp.
joinSourceGroupJoinSourceHow the member joined the group.
inviterUserIDstringUser ID of the inviter.
exstringMember custom extension string.

State changes after the call

In-group member profiles are scoped to the specific group; do not overwrite account-level user profiles with them. Call removeGroupMemberListeners() when logging out or disposing of the group member state layer.