请选择 进入手机版 | 继续访问电脑版
查看: 1134|回复: 9

[经验分享]关于在线状态事件订阅

[复制链接]

353

主题

373

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99902
发表于 2018-2-6 16:06:20 | 显示全部楼层 |阅读模式
事件订阅,允许用户订阅其他人发布的事件,当被订阅人发布事件后,订阅者可以收到相应的通知。目前支持在线状态事件订阅,对特定账号的登录登出事件进行通知。在线状态事件订阅,需要向商务申请开通后才能正常使用非好友也可以订阅在线状态。各端配置方法如下。
[注意1] 每次调用接口最多只能订阅100个账号,数量较多需多次调用。在线状态事件订阅,每个accid最大有效订阅账号不超过3000个。
[注意2] 订阅有效期为60 - 2592000(即60秒到30天),过期后需要重新订阅。    Server   通过API接口 https://api.netease.im/nimserver/event/subscribe/add.action进行订阅,参数 accid为事件订阅人账号, eventType1publisherAccids为被订阅人的账号列表(JSONArray格式),最多100个账号, ttl为有效期。
  查询订阅: https://api.netease.im/nimserver/event/subscribe/query.action
  取消订阅: https://api.netease.im/nimserver/event/subscribe/delete.action
  取消全部订阅: https://api.netease.im/nimserver/event/subscribe/batchdel.action


   Windows (C)   通过接口 nim_subscribe_event进行订阅,其中 event_type表示事件类型, kNIMEventTypeOnlineState = 1表示在线状态事件, ttl表示有效期, accid_list_json表示accid列表, sync_event表示是否立即同步。
  查询订阅: nim_query_subscribe_event
  取消订阅: nim_unsubscribe_event
  取消全部订阅: nim_batch_unsubscribe_event


   Android   通过接口 NIMClient.getService(EventSubscribeService.class).subscribeEvent(eventSubscribeRequest).setCallback(...)进行订阅,其中 EventSubscribeRequest为事件订阅请求对象,通过 setEventType(int eventType)方法设置 eventType传入 1表示在线状态事件类型,通过 setExpiry(long expiry)方法设置 expiry表示订阅有效期,通过 setPublishers(java.util.List<java.lang.String> publishers)设置 publishers表示事件发布者的accid集合。
  查询订阅: querySubscribeEvent(EventSubscribeRequest request)
  取消订阅: unSubscribeEvent(EventSubscribeRequest request),如果其中 EventSubscribeRequestpublishers不填则取消全部订阅。


   iOS   通过 NIMEventSubscribeManager中的接口 -subscribeEvent:completion:进行订阅,参数 NIMSubscribeRequest为构造的订阅请求对象,其中 type1表示在线状态事件, expiry为订阅有效期, syncEnabled表示是否立即同步状态值, publishers为事件发布者的accid数组。
  查询订阅: -querySubscribeEvent:completion:
  取消订阅: -unSubscribeEvent:completion:,如果其中 NIMSubscribeRequestpublishers不填则取消全部订阅。


   Web   通过接口 nim.subscribeEvent(...)订阅事件,传入参数 type: 1subscribeTime设置订阅有效期, accounts设置accid数组, sync设置是否立即同步。
  查询订阅: nim.querySubscribeEventsByAccounts(...)
<libr>取消订阅: nim.unSubscribeEventsByAccounts(...) </libr>  取消全部订阅: nim.unSubscribeEventsByType(...)



回复

使用道具 举报

0

主题

3

帖子

6

积分

云客

Rank: 1

积分
6
发表于 2018-2-28 09:52:14 | 显示全部楼层
请问订阅用户状态时间报这个错怎么解决
返回的错误是:
订阅好友事件失败
{
message: "subscribeEvent error: 非法操作或没有权限", code: 403, time: Wed Feb 28 2018 09:48:15 GMT+0800 (中国标准时间), timetag: 1519782495447}
code: 403,
message: "subscribeEvent error: 非法操作或没有权限",
time: Wed Feb 28 2018 09:48:15 GMT+0800 (中国标准时间) {constructor: ƒ},
timetag: 1519782495447,
回复

使用道具 举报

353

主题

373

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99902
 楼主| 发表于 2018-2-28 10:05:40 | 显示全部楼层
hjqlc 发表于 2018-2-28 09:52
请问订阅用户状态时间报这个错怎么解决
返回的错误是:
订阅好友事件失败

你好,403是表示该功能没有使用权限。在线状态功能当前是默认关闭状态,需要联系客户经理或者客服人员开通
回复

使用道具 举报

0

主题

3

帖子

6

积分

云客

Rank: 1

积分
6
发表于 2018-2-28 10:10:52 | 显示全部楼层
admin 发表于 2018-2-28 10:05
你好,403是表示该功能没有使用权限。在线状态功能当前是默认关闭状态,需要联系客户经理或者客服人员开 ...

是不是免费版没有这个功能,付费版有这个功能。还是都有,需要联系客户才能开通?
回复

使用道具 举报

353

主题

373

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99902
 楼主| 发表于 2018-2-28 10:12:55 | 显示全部楼层
hjqlc 发表于 2018-2-28 10:10
是不是免费版没有这个功能,付费版有这个功能。还是都有,需要联系客户才能开通? ...

免费版和专业版都有,联系客户经理开通即可
回复

使用道具 举报

0

主题

3

帖子

6

积分

云客

Rank: 1

积分
6
发表于 2018-2-28 10:15:06 | 显示全部楼层
admin 发表于 2018-2-28 10:12
免费版和专业版都有,联系客户经理开通即可

谢谢
回复

使用道具 举报

0

主题

1

帖子

4

积分

云客

Rank: 1

积分
4
发表于 2018-3-22 11:26:05 | 显示全部楼层
同一个账号,两个不同应用间的IM通讯码能互相订阅在线状态吗?
回复

使用道具 举报

0

主题

53

帖子

244

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
244
发表于 2018-3-30 16:36:12 | 显示全部楼层
两个应用只要用到同个appkey下的,就可以。
回复

使用道具 举报

2

主题

11

帖子

25

积分

云客

Rank: 1

积分
25
发表于 2018-7-24 17:03:42 | 显示全部楼层
我这边显示的一直是离线状态
subscribe temp publisher
    guanal01
) error: Error Domain=NIMRemoteErrorDomain Code=403 "非法操作或没有权限" UserInfo={NSLocalizedDescription=非法操作或没有权限, enum=NIMRemoteErrorCodeForbidden}  failed publishers: (null)
2018-07-24 17:01:39.076474+0800 NIM[23599:392965] Task <1FA4F85A-25FB-45F9-9F65-88BBA1AED36F>.<4> finished with error - code: -999
2018-07-24 17:01:39.076784+0800 NIM[23599:393017] Task <1FA4F85A-25FB-45F9-9F65-88BBA1AED36F>.<4> HTTP load failed (error code: -999 [1:89])
回复

使用道具 举报

0

主题

53

帖子

244

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
244
发表于 2018-7-25 14:58:50 | 显示全部楼层
guanal 发表于 2018-7-24 17:03
我这边显示的一直是离线状态
subscribe temp publisher
    guanal01

没有开通权限导致。需要找商务同事,开通在线状态事件订阅。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表