用户状态回调
通过注册用户在线状态回调,系统会将应用内用户的在线状态变更事件,实时抄送到设定的服务器。
开通IM 商业版后,可以在Portal 后台,IM管理页面的【高级功能】部分,开启【信息订阅定制】服务。并设置用户在线状态回调地址。
用户系统可以根据该事件,作为一些自己业务的触发。
回调的方法
系统通过HTTP POST 方法,调用所设置的HTTP 接口。
回调的消息格式
回调消息,通过JSON 字符串的形式,在Body 中传递。使用UTF-8 编码。消息样例如下:
{
"timestamp": "1621838541791", //事件时间戳(毫秒)
"node": "fireplace@10.244.1.69", //事件产生的节点
"xid": {
"uid": "6597439728320", // 用户ID
"deviceSN": 125171 // 用户设备序号
},
"status": "ONLINE", // ONLINE表示上线,OFFLINE表示下线
"reason": "", // 原因: replaced 表示设备被其它设备踢下线
"ip": "10.244.1.1:65167", // 客户端IP
"version": "3.0.2", // 客户端SDK版本号
"appId": "eajzxtgmgets" // APPID
}
回调接口返回
收到,并成功处理消息回调后,接口应该返回 HTTP 状态码 200。
消息回调
通过注册系统回调,实时订阅用户消息。系统将会将应用内用户发送的消息实时抄送到设定的服务器。
此功能可被用来作为应用消息的转存,或者作为其他业务的触发机制。
开通商业版后,可以在Portal 管理后台,IM管理页面的【信息订阅定制】部分,配置【用户消息回调地址】来接收消息回调。
请确保接收服务器的可用性,如果指定服务不可用或者网络原因中断,系统会尝试推送三次,如果仍然不可推送,会将消息存入失败队列,失败队列内消息默认存放三天,可以通过接口轮询获取。
回调的方法
系统通过HTTP POST 方法,调用所设置的HTTP 接口。
回调的消息格式
回调消息,通过JSON 字符串的形式,在Body 中传递。使用UTF-8 编码。消息样例如下:
{
"timestamp": "1583290166510", // 时间戳字符串类型
"node": "fireplace@10.244.0.112", // 消息发送节点
"from": { // 消息发送者
"deviceSN": 393585
"uid": "6597271396128",
},
"to": { // 消息接收者
"uid": "6597321892992"
},
"type": "CHAT", // 消息类型, 单聊: CHAT; 群聊: GROUPCHAT
"msgId": "711785029071536147", // 消息ID
"innerFrom": { // 消息实际发送者, TYPE为GROUPCHAT
"uid": "6597271396128",
"deviceSN": 393585
},
"innerTo": {
"uid": "6597321892992"
},
"content": "hello, callback!", // 消息内容
"metaTimestamp": "1583290166473",
"appId": "welovemaxim" // 消息appId
}
回调接口返回
收到,并成功处理消息回调后,接口应该返回 HTTP 状态码 200。
内容安全加强回调
使用内容安全加强回调,对接第三方内容安全服务,高效过滤色情、广告、涉政、暴恐等多类垃圾文字及敏感词、违禁变种。实现协同过滤的目的。
内容安全加强回调功能,可以在开通商业版后开通。在Portal 后台,IM管理页面的【高级功能】部分,开启【内容安全加强】功能,并配置内容安全的回调地址,账号信息。
系统默认可以使用阿里云的内容安全服务。
如果应用希望定制自己的过滤关键词,或者使用已经调校过的第三方内容安全服务,可以在第三方服务注册后在此配置开通。
自定义安全接口实现规范
如果用户设置自己的内容安全服务,需要实现一个服务兼容阿里云盾的接口即可。具体可以参考:
该回调,在系统收到用户发送的消息,实际投递之前进行回调。当接口返回的Suggestion 是 “block”,则系统将不会最终发送改消息。