SDKsWASM
分页查询群成员
分页查询指定群组的成员。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
groupID | string | 是 | 目标群组 ID。 |
filter | GroupMemberFilter | 是 | 成员角色筛选。 |
offset | number | 是 | 起始偏移量,第一页传 0。 |
count | number | 是 | 本次读取数量。 |
| 枚举值 | 数值 | 含义 |
|---|---|---|
GroupMemberFilter.All | 0 | 全部成员。 |
GroupMemberFilter.Owner | 1 | 仅群主。 |
GroupMemberFilter.Admin | 2 | 仅管理员。 |
GroupMemberFilter.Normal | 3 | 仅普通成员。 |
GroupMemberFilter.AdminAndNormal | 4 | 管理员和普通成员。 |
GroupMemberFilter.AdminAndOwner | 5 | 管理员和群主。 |
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,不要使用事件合并后的数组长度。
群成员字段
| 字段 | 类型 | 说明 |
|---|---|---|
groupID | string | 成员所属的群组 ID。 |
userID | string | 成员的用户 ID;与 groupID 共同组成稳定标识。 |
nickname | string | 该用户在当前群内的昵称。 |
faceURL | string | 群成员头像快照。 |
roleLevel | GroupMemberRole | 群角色:普通成员、管理员或群主。 |
muteEndTime | number | 禁言结束时间;判断禁言状态时与当前时间比较。 |
joinTime | number | 加入群组的时间。 |
joinSource | GroupJoinSource | 入群来源,例如邀请、搜索或二维码。 |
inviterUserID | string | 邀请该成员入群的用户 ID;无邀请人时可能为空。 |
operatorUserID | string | 最近建立或更新该成员记录的操作用户 ID。 |
ex | string | 业务约定的群成员扩展字符串。 |
nickname 和 roleLevel 属于当前群组上下文,同一用户在其他群组中可以不同。不要用群成员资料覆盖账号级 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()。
这个页面有帮助吗?