浏览 SDKs · WASM
SDKsWASM

分页查询群成员

分页查询指定群组的成员。

复制

参数说明

参数类型是否必填说明
groupIDstring目标群组 ID。
filterGroupMemberFilter成员角色筛选。
offsetnumber起始偏移量,第一页传 0
countnumber本次读取数量。
枚举值数值含义
GroupMemberFilter.All0全部成员。
GroupMemberFilter.Owner1仅群主。
GroupMemberFilter.Admin2仅管理员。
GroupMemberFilter.Normal3仅普通成员。
GroupMemberFilter.AdminAndNormal4管理员和普通成员。
GroupMemberFilter.AdminAndOwner5管理员和群主。
import { GroupMemberFilter } from '@openim/wasm-client-sdk';

const { data: members } = await openimsdk.getGroupMemberList({
  groupID,
  filter: GroupMemberFilter.All,
  offset: 0,
  count: 50,
});

Promise 成功后,data 是当前页 GroupMemberItem[]。继续加载时按请求条目数增加 offset,不要使用事件合并后的数组长度。

群成员字段

字段类型说明
groupIDstring成员所属的群组 ID。
userIDstring成员的用户 ID;与 groupID 共同组成稳定标识。
nicknamestring该用户在当前群内的昵称。
faceURLstring群成员头像快照。
roleLevelGroupMemberRole群角色:普通成员、管理员或群主。
muteEndTimenumber禁言结束时间;判断禁言状态时与当前时间比较。
joinTimenumber加入群组的时间。
joinSourceGroupJoinSource入群来源,例如邀请、搜索或二维码。
inviterUserIDstring邀请该成员入群的用户 ID;无邀请人时可能为空。
operatorUserIDstring最近建立或更新该成员记录的操作用户 ID。
exstring业务约定的群成员扩展字符串。

nicknameroleLevel 属于当前群组上下文,同一用户在其他群组中可以不同。不要用群成员资料覆盖账号级 PublicUserItem

SDK 没有独立的禁言成员列表方法,需要时分页读取成员后根据 muteEndTime 过滤。

监听成员变化

本页是群成员事件的完整监听归属页。成员资料使用 groupID:userID 作为合并标识:

import { CbEvents } from '@openim/wasm-client-sdk';

const handleAdded = ({ data }) => upsertGroupMember(data);
const handleDeleted = ({ data }) =>
  removeGroupMember(data.groupID, data.userID);
const handleChanged = ({ data }) => upsertGroupMember(data);

openimsdk.on(CbEvents.OnGroupMemberAdded, handleAdded);
openimsdk.on(CbEvents.OnGroupMemberDeleted, handleDeleted);
openimsdk.on(CbEvents.OnGroupMemberInfoChanged, handleChanged);

function removeGroupMemberListeners() {
  openimsdk.off(CbEvents.OnGroupMemberAdded, handleAdded);
  openimsdk.off(CbEvents.OnGroupMemberDeleted, handleDeleted);
  openimsdk.off(CbEvents.OnGroupMemberInfoChanged, handleChanged);
}

分页期间发生新增或删除时,应重置分页并从第一页重新加载。组件卸载、退出登录或切换账号时调用 removeGroupMemberListeners()