差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
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]] | ||
---- | ---- |