用户关系管理

更新时间:2022-02-28

SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理:

  • 好友列表管理:查询好友列表、申请添加好友、同意好友申请、拒绝好友申请和删除好友等操作。
  • 黑名单管理:查询黑名单列表、添加用户至黑名单以及将用户移出黑名单等操作。

环信即时通讯 IM Web SDK 提供以下方法支持管理用户之间的关系:

  • addContact 申请添加好友;
  • acceptContactInvite 接受好友请求;
  • declineContactInvite 拒绝好友请求;
  • deleteContact 删除好友;
  • getContacts 查询好友列表;
  • WebIM.conn.addEventHandler() 监听好友状态事件;
  • addUsersToBlacklist 添加用户到黑名单;
  • getBlacklist 获取黑名单;
  • removeUserFromBlackList 将用户移出黑名单。

开始前,请确保满足以下条件:

  • 完成 SDK 初始化,并连接到服务器,详见 快速开始
  • 了解环信即时通讯 IM 的使用限制,详见 使用限制

添加好友

调用 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']
    })