浏览 SDKs · WASM
SDKsWASM

分页获取好友列表

分页查询当前用户的好友列表。

复制

参数说明

参数类型是否必填说明
offsetnumber分页偏移量,首页传 0
countnumber本次请求的好友数量。
filterBlackboolean是否从结果中过滤黑名单用户。
const { data: friends } = await openimsdk.getFriendListPage({
  offset: 0,
  count: 50,
  filterBlack: true,
});

Promise 成功后,data 是当前页 FriendUserItem[]。继续加载时按请求条目数增加 offset;好友增删后重置分页。

好友资料字段

FriendUserItem 表示当前账号与一个好友的关系资料:

字段类型说明
userIDstring好友的用户 ID,也是好友列表的稳定标识。
nicknamestring好友的账号级昵称。
faceURLstring好友的账号级头像地址。
remarkstring当前账号为该好友设置的备注。
isPinnedboolean该好友是否在联系人列表中置顶。
ownerUserIDstring这条好友关系所属的用户 ID,通常是当前账号。
operatorUserIDstring建立或更新这条关系的操作用户 ID。
addSourcenumber好友关系的添加来源值。
createTimenumber好友关系创建时间。
exstring好友关系扩展字符串。
attachedInfostringSDK 附加信息;只按已确认的业务约定解析。

nicknamefaceURL 是账号资料快照,remarkisPinnedexattachedInfo 属于好友关系。不要用 FriendUserItem 覆盖陌生人的 PublicUserItem,也不要把好友备注写回账号昵称。

同步好友变化

本页是 OnFriendAddedOnFriendInfoChangedOnFriendDeleted 的完整监听归属页。查询负责建立快照,事件负责按 userID 合并增量。

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

const handleFriendChanged = ({ data }) => mergeFriend(data);
const handleFriendDeleted = ({ data }) => removeFriend(data.userID);

openimsdk.on(CbEvents.OnFriendAdded, handleFriendChanged);
openimsdk.on(CbEvents.OnFriendInfoChanged, handleFriendChanged);
openimsdk.on(CbEvents.OnFriendDeleted, handleFriendDeleted);

function removeFriendListeners() {
  openimsdk.off(CbEvents.OnFriendAdded, handleFriendChanged);
  openimsdk.off(CbEvents.OnFriendInfoChanged, handleFriendChanged);
  openimsdk.off(CbEvents.OnFriendDeleted, handleFriendDeleted);
}

退出登录、切换账号或销毁联系人状态层时调用 removeFriendListeners()