logo
当前页

好友管理


功能简介

ZIM SDK 支持好友管理,用户可以直接添加和删除好友、查看看好友列表、向用户发起好友申请、同意或拒绝好友申请、查看好友申请列表、检查其他用户与自己的好友关系、查询或修改好友信息。

每名用户最多可以拥有 3000 名好友。

基础功能

监听好友相关回调

通过调用 on 接口,注册监听好友相关回调,包括 friendListChangedfriendApplicationListChangedfriendApplicationUpdatedfriendInfoUpdated

Untitled
// 好友列表变更回调
zim.on('friendListChanged', (zim, data) => {
    // 待办事项
});

// 好友信息更新回调
zim.on('friendInfoUpdated', (zim, data) => {
    // 待办事项
});

// 好友申请列表变更回调
zim.on('friendApplicationListChanged', (zim, data) => {
    // 待办事项
});

// 好友申请更新回调
zim.on('friendApplicationUpdated', (zim, data) => {
    // 待办事项
});
1
Copied!

直接添加好友

登录 ZIM SDK 后,用户可以通过 addFriend 接口对其他用户设置好友备注和属性,直接添加为好友,无需对方同意。

说明

最多可以设置 5 个好友属性,且对应的 key 取值必须为 k0、k1、k2、k3、k4。建议您提前约定各属性的实际含义并保持统一。

添加好友结果通过 ZIMFriendAddedResult 返回。

Untitled
// 直接添加好友
zim.addFriend('userID', { wording: '你好!', friendAlias: '马克', friendAttributes: { k0: 'SZ' } }).then(res => {
    const friendInfo = res.friendInfo;
});
1
Copied!

添加好友成功后,相关用户会收到回调 friendListChanged 得知该用户已成为好友。

批量删除好友

登录 ZIM SDK 后,用户可以通过 deleteFriends 接口批量单向或双向删除至多 20 名好友。

以用户 A、B 举例说明单向删除和双向删除:

  • 单向删除:当用户 A 单向删除了用户 B,用户 B 不再是用户 A 的好友、用户 A 仍为用户 B 的好友。
  • 双向删除:当用户 A 双向删除了用户 B,彼此都不再是对方的好友。

删除好友结果通过 ZIMFriendsDeletedResult 返回。

Untitled
// 批量删除好友
// 类型 0: 双向删除
// 类型 1: 单向删除
zim.deleteFriends(['userID1', 'userID2'], { type: 0 }).then(res => {
    const errorUserList = res.errorUserList;
})
1
Copied!

删除好友成功后,根据删除类型,相关用户会收到回调 friendListChanged 得知该用户不再是好友。

发送好友申请

登录 ZIM SDK 后,用户可以通过 sendFriendApplication 接口向其他用户发送好友申请、设置好友备注和好友属性。

说明

最多可以设置 5 个好友属性,且对应的 key 取值必须为 k0、k1、k2、k3、k4。建议您提前约定各属性的实际含义并保持统一。

发送好友申请结果通过 ZIMFriendApplicationSentResult 返回。

Untitled
// 收到好友申请列表变更的回调
zim.on('friendApplicationListChanged', (zim, data) => {
    // action为0表示新的申请
    const { action, applicationList } = data;
});
1
Copied!

目标用户会收到 friendApplicationListChanged 回调,得知有用户申请加为好友。该用户可以选择在 7 日内 同意拒绝 申请。

说明

如需调整好友申请有效期,请联系 ZEGO 技术支持。

同意好友申请

登录 ZIM SDK 后,用户可以调用 acceptFriendApplication 接口,传入申请发起用户 ID,同意好友申请。

同意好友申请结果通过 ZIMFriendApplicationAcceptedResult 返回。

Untitled
// 接受好友申请
zim.acceptFriendApplication('userID', { friendAlias: 'Mark', friendAttributes: { k0: 'SZ' } }).then(res => {
    const friendInfo = res.friendInfo;
})
1
Copied!

与申请相关的双方用户不仅会收到 friendApplicationUpdated 回调,得知申请通过,还会收到 friendListChanged 得知对方已成为自己的好友。

拒绝好友申请

登录 ZIM SDK 后,用户可以通过 rejectFriendApplication 拒绝好友申请。

拒绝好友申请结果通过 ZIMFriendApplicationRejectedResult 返回。

Untitled
// 拒绝好友申请
zim.rejectFriendApplication('userID', {}).then(res => {
    const userInfo = res.userInfo;
})
1
Copied!

与申请相关的双方用户会收到 friendApplicationUpdated 回调,得知申请遭到拒绝。

查询好友列表

登录 ZIM SDK 后,用户可以通过 queryFriendList 拉取分页全量好友列表。

查询结果通过 ZIMFriendListQueriedResult 返回,返回的好友列表以好友关系创建时间倒序排列。

Untitled
// 查询好友信息列表
zim.queryFriendList({ count: 100, nextFlag: 0 }).then(res => {
    const { friendList, nextFlag } = res;
});
1
Copied!

查询好友申请列表

登录 ZIM SDK 后,用户可以通过 queryFriendApplicationList 获取好友申请列表,了解各申请的状态。好友申请列表中会包含本用户向其他用户发起的申请,也会包含其他用户向本用户发起的申请。

查询结果通过 ZIMFriendApplicationListQueriedResult 返回。

Untitled
// 查询好友申请信息列表
zim.queryFriendApplicationList({ count: 100, nextFlag: 0 }).then(res => {
    const { applicationList, nextFlag } = res;
});
1
Copied!

更多功能

更新好友备注

登录 ZIM SDK 后,用户可以通过 updateFriendAlias 更新自己对好友的备注。

更新结果通过 ZIMFriendAliasUpdatedResult 返回。

Untitled
// 更新好友备注
zim.updateFriendAlias('新备注', 'userID' }).then(res => {
    const friendInfo = res.friendInfo;
});
1
Copied!

更新成功后,该用户可以收到 friendInfoUpdated 接口,得知好友信息已更新。

更新好友属性

登录 ZIM SDK 后,用户可以通过 updateFriendAttributes 更新好友属性。

说明

最多可以设置 5 个好友属性,且对应的 key 取值必须为 k0、k1、k2、k3、k4。建议您提前约定各属性的实际含义并保持统一。

更新好友属性结果通过 ZIMFriendAttributesUpdatedResult 返回。

Untitled
// 更新好友属性
zim.updateFriendAttributes({ k1: 'v1', k2: 'v2' } , 'userID' }).then(res => {
    const friendInfo = res.friendInfo;
});
1
Copied!

更新成功后,该用户可以收到 friendInfoUpdated 接口,得知好友信息已更新。

检查好友关系

登录 ZIM SDK 后,用户可以通过 checkFriendsRelation 批量检查自己与至多 20 名其他用户的好友关系。

ZEGO 支持单边或双边检查好友关系,以检查用户 A 与目标用户 B 的好友关系为例:

  • 单边检查:仅检查用户 A 的好友列表是否有用户 B。
  • 双边检查:同时检查用户 A 和用户 B 的好友列表是否有对方。

检查好友关系结果通过 ZIMFriendsRelationCheckedResult 返回。

Untitled
// 检查与其他用户的好友关系
// 类型为0:双向关系
// 类型为1:单向关系
zim.checkFriendsRelation(['userID1', 'userID2'], { type: 0 }).then(res => {
    const { relationInfos, errorUserList } = res;
})
1
Copied!

批量查询好友信息

登录 ZIM SDK 后,用户可以通过 queryFriendsInfo 批量查询 20 名好友信息。

批量查询好友信息结果通过 ZIMFriendsInfoQueriedResult 返回。

Untitled
// 批量查询好友信息
zim.queryFriendsInfo(['userID1', 'userID2']).then(res => {
    const { friendInfos, errorUserList } = res;
});
1
Copied!

搜索好友

登录 ZIM SDK 后,用户可以通过 searchLocalFriends 接口,传入至多 5 个关键词,即可对好友的用户名及备注进行搜索,获取同时命中所有关键词的好友。

搜索结果通过 ZIMFriendsSearchedResult 返回。

Untitled
zim.searchLocalFriends({ keywords: ['a', 'b'], isAlsoMatchFriendAlias: true, count: 100, nextFlag: 0 }).then(res => {
    // 待办事项
});
1
Copied!

Previous

黑名单管理

Next

在线状态订阅