差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
im:web:draft:buddy [2019/03/11 06:53]
jk 创建
im:web:draft:buddy [2019/03/22 12:52]
jk 移除
行 1: 行 1:
 ====== 好友管理 ====== ====== 好友管理 ======
 +好友管理能让您更好的体验 IM 功能,环信 Web IM SDK 支持好友体系管理,好友相关的操作如下:
 +  * 查询好友列表
  
 +  * 添加/​删除好友请求
 +
 +  * 添加好友
 +  ​
 +  * 处理好友请求
 +  ​
 +  * 删除好友
 +  ​
 +  * 黑名单
 +
 +多种好友体系的管理操作,覆盖丰富的集成场景。
 +
 +----
 ===== 参数解释 ===== ===== 参数解释 =====
  
行 9: 行 24:
 ===== 查询好友列表 ===== ===== 查询好友列表 =====
  
-查询好友列表时,要注意 subscription (both, to, from) 为不同值的处理。此处默认 both 和 to 的为好友,开发者自定义处理,保持跟 APP 端处理一致即可。 
  
 +调用''​getRoster''​查询好友列表,示例代码如下:
 <code javascript>​ <code javascript>​
 conn.getRoster({ conn.getRoster({
行 25: 行 40:
     for ( var i = 0, l = roster.length;​ i < l; i++ ) {     for ( var i = 0, l = roster.length;​ i < l; i++ ) {
       var ros = roster[i]; ​   ​       var ros = roster[i]; ​   ​
-      //​ros.subscription值为both/​to为要显示的联系人,此处与APP需保持一致,才能保证两个客户端登录后的好友列表一致 
       if ( ros.subscription === '​both'​ || ros.subscription === '​to'​ ) {       if ( ros.subscription === '​both'​ || ros.subscription === '​to'​ ) {
  
行 34: 行 48:
 </​code>​ </​code>​
  
 +**注意:**
 +  * 查询好友列表时,要注意 ''​subscription (both, to, from)''​ 为不同值的处理
 +
 +  * 此处默认 ''​both''​ 和 ''​to''​ 的为好友,开发者自定义处理,保持跟 APP 端处理一致即可
 +  ​
 +  * ''​ros.subscription''​ 值为 ''​both/​to''​ 为要显示的联系人,此处与 APP 需保持一致,才能保证两个客户端登录后的好友列表一致
 +
 +=== API ===
 +示例中使用到的 API  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getRoster|getRoster]]
 +  ​
 +
 +----
 ===== 添加/​删除好友请求 ===== ===== 添加/​删除好友请求 =====
  
-通过 SDK 的 subscribe 和 unsubscribe 进行添加或者删除好友操作登录用户通过注册 onPresence,监听对方的添加或者删除好友请求,并做相应的处理。+  * 通过 SDK 的 ''​subscribe'' ​和 ''​unsubscribe'' ​进行添加或者删除好友操作; 
 +   
 +  * 登录用户通过注册 ​''​onPresence'' ​,监听对方的添加或者删除好友请求,并做相应的处理。
  
 <code javascript>​ <code javascript>​
行 43: 行 72:
   //​(发送者希望订阅接收者的出席信息),即别人申请加你为好友   //​(发送者希望订阅接收者的出席信息),即别人申请加你为好友
   if ( e.type === '​subscribe'​ ) {   if ( e.type === '​subscribe'​ ) {
-    //​若e.status中含有[resp:​true],​则表示为对方同意好友后反向添加自己为好友的消息,demo中发现此类消息,默认同意操作,完成双方互为好友;如果不含有[resp:​true],则表示为正常的对方请求添加自己为好友的申请消息。 
   }   }
  
行 63: 行 91:
 </​code>​ </​code>​
  
-===== 添加好友 ​=====+**注意:​** 
 +  * 若''​e.status''​中含有''​[resp:​true]'',​则表示为对方同意好友后反向添加自己为好友的消息,demo 中发现此类消息,默认同意操作,完成双方互为好友
  
 +  * 如果不含有''​[resp:​true]''​,则表示为正常的对方请求添加自己为好友的申请消息。
  
 +=== API ===
 +示例中使用到的 API  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​subscribe|subscribe]]
 +  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​unsubscribe|unsubscribe]]
 +  ​
 +
 +----
 +===== 添加好友 =====
 +调用''​subscribe''​添加好友,示例代码如下:
 <code javascript>​ <code javascript>​
 // 添加好友 // 添加好友
行 71: 行 111:
     conn.subscribe({     conn.subscribe({
         to: '​username',​         to: '​username',​
-        // Demo里面接收方没有展现出来这个message,在status字段里面 
         message: '​加个好友呗!' ​           message: '​加个好友呗!' ​  
     });     });
 }; };
 </​code>​ </​code>​
 +**注意:**
 +  * Demo 里面接收方没有展现出来这个''​message''​,在''​status''​字段里面。
 +
 +=== API ===
 +示例中使用到的 API  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​subscribe|subscribe]]
 +  ​
 +
 +----
  
 ===== 处理好友请求 ===== ===== 处理好友请求 =====
  
-当收到“添加好友”的请求时,用户可能会同意拒绝添加对方为好友,处理方式如下+当收到**“添加好友”**的请求时,会有两种处理方式: 
 +  * 同意添加对方为好友 
 +   
 +  * 拒绝添加对方为好友 
 + 
 +具体代码实现示例如下: 
  
 ==== 同意添加对方为好友 ==== ==== 同意添加对方为好友 ====
行 135: 行 189:
 </​code>​ </​code>​
  
-===== 删除好友 =====+=== API === 
 +示例中使用到的 API     
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​listen|listen]] 
 +   
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​subscribed|subscribed]]
  
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​subscribe|subscribe]]
 +
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​unsubscribed|unsubscribed]]  ​
 +  ​
 +
 +----
 +===== 删除好友 =====
 +删除好友代码示例如下:
 <code javascript>​ <code javascript>​
 // 删除好友 // 删除好友
行 152: 行 218:
 }; };
 </​code>​ </​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeRoster|removeRoster]]
 +  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​unsubscribed|unsubscribed]]
 +
 +----
  
 ===== 黑名单 ===== ===== 黑名单 =====
 +集成黑名单操作中,有以下几种黑名单功能操作:
 +  * 将好友加入黑名单
 +
 +  * 获取黑名单列表
  
 +  * 将好友移除黑名单
 ==== 将好友加入黑名单 ==== ==== 将好友加入黑名单 ====
  
-将好友加入黑名单后,对方好友列表依然可以看到方,但无法向方发送消息。+将好友加入黑名单后,对方好友列表依然可以看到方,但无法向方发送消息。
  
 <code javascript>​ <code javascript>​
-// list的结构为{username_1:​ {}, username_2: {}...},拉黑好友需要将拉黑后的黑名单里的好友信息全部传入, 
-// 如黑名单此时已有A,B两位好友,现想将C也拉进黑名单,正确的操作是同时将ABC的信息都传入接口中。 
-/* 
  var list = {  var list = {
  ​username_1:​{  ​username_1:​{
行 185: 行 261:
  }  }
  }  }
- jid, username, subscription均在获取好友列表时已获取到,用户可根据好友列表动态获取这些参数, 
- ​order不重复即可 
- */ 
 var addToBlackList = function () { var addToBlackList = function () {
     var list = {     var list = {
行 220: 行 293:
 </​code>​ </​code>​
  
 +**注意:**
 +  * ''​list''​的结构为''​{username_1:​ {}, username_2: {}...}'';​
 +  ​
 +  * 拉黑好友需要将拉黑后的黑名单里的好友信息全部传入,如黑名单此时已有A,B两位好友,现想将C也拉进黑名单,正确的操作是同时将ABC的信息都传入接口中;​
 +
 +  * ''​jid'',​ ''​username'',​ ''​subscription''​均在获取好友列表时已获取到,用户可根据好友列表动态获取这些参数,''​order''​不重复即可。
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​addToBlackList|addToBlackList]]
 +  ​
 +
 +----
 ==== 获取黑名单列表 ==== ==== 获取黑名单列表 ====
  
-调用getBlacklist函数获取好友黑名单列表调用这个函数时,会回调conn.listen里的onBlacklistUpdate函数,具体细节请参照[[im:​web:​intro:​basic|Web SDK基础功能]]。+  * 调用''​getBlacklist''​函数获取好友黑名单列表; 
 +   
 +  * 调用这个函数时,会回调''​conn.listen''​里的''​onBlacklistUpdate''​函数,具体细节请参照[[im:​web:​intro:​basic|Web SDK基础功能]]。
  
 <code javascript>​ <code javascript>​
行 230: 行 318:
 </​code>​ </​code>​
  
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​listen|listen]]
 +  ​
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getBlacklist|getBlacklist]]
 +
 +----
 ==== 将好友移出黑名单 ==== ==== 将好友移出黑名单 ====
  
-将好友移出黑名单的机制是,将移出后某好友后黑名单中的好友组成一个list,传入接口重建黑名单例如,黑名单中有ABC三个人,需要移出A,则将B和C组合成一个list传入接口。若list为空,则清空黑名单。+  * 将好友移出黑名单的机制是,将移出后某好友后黑名单中的好友组成一个 list ,传入接口重建黑名单; 
 +  
 +  * 例如,黑名单中有 ABC 三个人,需要移出 A ,则将 B 和 C 组合成一个 list 传入接口。 
 +   
 +  * 若 list 为空,则清空黑名单。
  
 <code javascript>​ <code javascript>​
行 268: 行 367:
 </​code>​ </​code>​
  
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeFromBlackList|removeFromBlackList]]
  
 ---- ----