Browse SDKs · uni-app / uni-app x
Platform
SDKsuni-app / uni-app x

Get group member list

Query group members by role and pagination offset.

Copy

Invoke getGroupMemberList() to build a paginated group member roster, optionally filtering members by role level using filter.

Parameters

ParameterTypeRequiredDescription
groupIDstringYesTarget group identifier.
filterOpenIMGroupMemberFilterYesMember role filter code; see table below.
offsetnumberYesPagination starting offset; pass 0 for the first page.
countnumberYesNumber of member records to retrieve.
Enum constantNumeric valueDescription
OpenIMGroupMemberFilterAll0All group members.
OpenIMGroupMemberFilterOwner1Group owner only.
OpenIMGroupMemberFilterAdmin2Group administrators only.
OpenIMGroupMemberFilterNormal3Regular members only.
OpenIMGroupMemberFilterAdminAndNormal4Administrators and regular members.
OpenIMGroupMemberFilterAdminAndOwner5Group owner and administrators.

Code example

import {
  OpenIMGroupMemberFilterAll,
  getGroupMemberList,
} from '@/uni_modules/unix-openim-sdk'

const result = await getGroupMemberList({
  groupID: groupID,
  filter: OpenIMGroupMemberFilterAll,
  offset: 0,
  count: 50,
})
const members = result != null ? result.members : []

Return value

The Promise resolves with an OpenIMGroupMemberListResult | null object containing OpenIMGroupMemberItem[] elements in members. Deduplicate and merge members using the composite key groupID:userID. When paginating, advance offset by the fixed batch size rather than active UI roster count.

Group member fields

FieldTypeDescription
groupIDstringGroup ID to which the member belongs.
userIDstringMember user ID; forms a composite key with groupID.
nicknamestringGroup-specific display nickname.
faceURLstringGroup-specific avatar URL.
roleLevelOpenIMGroupMemberRoleMember role level (OpenIMGroupMemberRoleNormal, OpenIMGroupMemberRoleAdmin, OpenIMGroupMemberRoleOwner).
muteEndTimenumberMute expiration timestamp in Unix milliseconds; compare with Date.now() to determine active mute status.
joinTimenumberMember join timestamp in Unix milliseconds.
joinSourceOpenIMGroupJoinSourceHow the member joined the group.
inviterUserIDstringUser ID of the inviter; empty string if not invited.
operatorUserIDstringUser ID that performed the latest membership modification.
exstringCustom member extension string.
attachedInfostringSDK internal metadata.

Group nicknames, avatars, and mute statuses are local to the group; do not overwrite account-level user profiles with member data. The SDK does not provide a dedicated query for muted members; paginate all members and filter by muteEndTime > Date.now().

Monitor member updates

Group member lifecycle events are centrally observed here. The callback delivers an OpenIMGroupMemberItem | null object. Merge or remove records using groupID:userID:

import {
  OpenIMGroupMemberItem,
  off,
  onGroupMemberAdded,
  onGroupMemberDeleted,
  onGroupMemberInfoChanged,
} from '@/uni_modules/unix-openim-sdk'

const upsertMember = (member: OpenIMGroupMemberItem | null) => {
  if (member == null) return
  upsertGroupMember(member)
}

const deleteMember = (member: OpenIMGroupMemberItem | null) => {
  if (member == null) return
  removeGroupMember(member.groupID, member.userID)
}

const addedSubscription = onGroupMemberAdded(upsertMember)
const deletedSubscription = onGroupMemberDeleted(deleteMember)
const changedSubscription = onGroupMemberInfoChanged(upsertMember)

function removeGroupMemberListeners() {
  off(addedSubscription)
  off(deletedSubscription)
  off(changedSubscription)
}

If member addition or deletion events occur during active pagination, reset the offset and reload from the first page. Unsubscribe when unmounting views, logging out, or switching accounts.