用户关系管理
更新时间:2022-02-28
功能描述
SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理:
- 好友列表管理:查询好友列表、申请添加好友、同意好友申请、拒绝好友申请和删除好友等操作。
- 黑名单管理:查询黑名单列表、添加用户至黑名单以及将用户移出黑名单等操作。
技术原理
环信即时通讯 IM Web SDK 提供以下方法支持管理用户之间的关系:
addContact
申请添加好友;acceptContactInvite
接受好友请求;declineContactInvite
拒绝好友请求;deleteContact
删除好友;getContacts
查询好友列表;WebIM.conn.addEventHandler()
监听好友状态事件;addUsersToBlacklist
添加用户到黑名单;getBlacklist
获取黑名单;removeUserFromBlackList
将用户移出黑名单。
前提条件
实现方法
添加好友
调用 addContact
添加好友,示例代码如下:
let message = '加个好友呗!';
WebIM.conn.addContact('username', message);
处理好友请求
当收到“添加好友”的请求时,会有两种处理方式:
- 同意添加对方为好友;
- 拒绝添加对方为好友。
具体代码实现示例如下:
/**
* 同意添加对方为好友。
* @param {String} username - 对方的用户 ID。
*/
WebIM.conn.acceptContactInvite('username')
/**
* 拒绝添加对方为好友。
* @param {String} username - 对方的用户 ID。
*/
WebIM.conn.declineContactInvite('username')
删除好友
调用 deleteContact
删除好友,示例代码如下:
WebIM.conn.deleteContact('username');
查询好友列表
调用 getContacts
查询好友列表,示例代码如下:
WebIM.conn.getContacts().then( (res) => {
console.log(res) // res.data > ['user1', 'user2']
}
监听好友状态事件
通过在 SDK WebIM.conn.addEventHandler()
中注册以下事件来监听好友状态, 示例代码如下:
/**
* `msg` 为触发回调后的结果。
* `contactEvent` 可自定义。
*/
WebIM.conn.addEventHandler('contactEvent', {
// 收到好友邀请触发此方法。
onContactInvited: function(msg){}
// 联系人被删除时触发此方法。
onContactDeleted: function(msg){}
// 新增联系人会触发此方法。
onContactAdded: function(msg){}
// 好友请求被拒绝时触发此方法。
onContactRefuse: function(msg){}
// 好友请求被同意时触发此方法。
onContactAgreed: function(msg){}
})
管理黑名单
黑名单操作包含以下几种:
- 添加用户至黑名单;
- 将用户移出黑名单;
- 获取黑名单列表。
添加用户至黑名单
将好友加入黑名单后,对方好友列表依然可以看到己方,但无法向己方发送消息.
调用 addUsersToBlacklist
将好友加入黑名单,示例代码如下:
/**
* 添加单个用户 ID;批量添加多个用户 ID 组成的数组,如 ["user1","user2",...]。
* @param {String|Array} name 用户 ID。
*/
WebIM.conn.addUsersToBlacklist({
name:['user1','user2']
});
将用户移出黑名单
调用 removeUserFromBlackList
将好友移出黑名单,示例代码如下:
/**
* 删除单个用户 ID;批量删除多个用户 ID 组成的数组,如["user1","user2",...]。
* @param {String|Array} name 用户 ID。
*/
WebIM.conn.removeUserFromBlackList({
name:['user1','user2']
});
获取黑名单列表
调用 getBlacklist
函数获取好友黑名单列表,示例代码如下:
WebIM.conn.getBlacklist().then((res)=>{
console.log('>>>>>>获取黑名单成功',res); // res.data > ['user1', 'user2']
})