功能说明
开启推送插件后,推送结果可以通过配置基础回调的方式,将结果转发给 App 后台。
注意事项
该回调属于下行扩散后的事件回调,为防止大量回调请求打垮 App 后台,默认QPS:1000次/s。超频的回调会延迟一段时间重试,如果您因业务需求需要调整 QPS,可以 提交工单 申请。
要启用回调,必须配置回调 URL,并打开本回调对应的开关,配置方法详见 第三方回调配置 文档。
回调的方向是即时通信 IM 后台向 App 后台发起 HTTP POST 请求。
App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
其他安全相关事宜请参见 第三方回调简介:安全考虑 文档。
接口说明
请求 URL 示例
以下示例中 App 配置的回调 URL 为
https://www.example.com
示例:https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json
请求参数说明
| 字段 | 说明 | 
| https | 请求协议为 HTTPS。 请求方式为 POST。 | 
| www.example.com | 回调 URL。 | 
| SdkAppid | 创建应用时在即时通信 IM 控制台分配的 SDKAppID。 | 
| CallbackCommand | 固定为: Push.AllMemberPush。 | 
| contenttype | 请求包体固定为  json。 | 
请求包示例
{"Events": [ // events数组长度范围为1~100{"CallbackCommand":"Push.AllMemberPush","EventType": 1, // 事件类型,EventType=1表示离线推送"TaskId": "657bf434_537529d8_2000005e80aa873_2780d131_bc614e", // 全员/标签/单推推送 TaskId"TaskTime": 1557481127, // 全员推送任务发起时间戳, 单位为秒"EventTime": 1557481128, // 事件发生时间戳, 单位为秒"To_Account": "user2", // 接受者"PushPlatform": 1, // 推送厂商"PushStage": 1, // 推送阶段"ErrCode": 0, // 推送事件结果"ErrInfo": "OK" // 推送事件结果描述,可能为空},{"CallbackCommand":"Push.AllMemberPush","EventType": 2, // 事件类型,EventType=2表示在线推送"TaskId": "657bf434_537529d8_2000005e80aa873_2780d131_9", // 全员/标签/单推推送 TaskId"TaskTime": 1557481127, // 全员推送任务发起时间戳, 单位为秒"EventTime": 1557481129, // 事件发生时间戳, 单位为秒"To_Account": "user3", // 接受者"PushPlatform": 0, // 推送厂商"PushStage": 1, // 推送阶段"ErrCode": 0, // 推送事件结果"ErrInfo": "OK" // 推送事件结果描述,可能为空},....]}
请求包字段说明
| 字段 | 类型 | 说明 | 
| Events | Array [ Event Object ] | 批量回调内容,最多包含100个回调事件(Event Object)的数据。 | 
Event Object结构
| 字段 | 类型 | 说明 | 
| CallbackCommand | String | 回调命令。 | 
| EventType | Integer | 事件类型: EventType = 1表示离线推送。 EventType = 2表示在线推送。 | 
| TaskId | String | 全员推送发送时返回的任务 ID。 | 
| DataId | String | 客户业务自定义标识,回调透传推送请求中的该字段。 | 
| TaskTime | Integer | 全员推送任务发起时间戳,单位为秒。 | 
| EventTime | Integer | 事件发生时间戳,单位为秒。 | 
| To_Account | String | 消息接收者 UserID。 | 
| PushPlatform | Integer | 推送厂商(在线推送 EventType = 2不区分厂商,默认返回0): PushPlatform = 0表示未知厂商。 PushPlatform = 1表示 Apple APNS 推送。 PushPlatform = 2表示小米推送。 PushPlatform = 3表示华为推送。 PushPlatform = 4表示 Google FCM 推送。 PushPlatform = 5表示魅族推送。 PushPlatform = 6表示 OPPO 推送。 PushPlatform = 7表示 vivo 推送。 PushPlatform = 8表示荣耀推送。 PushPlatform = 9表示鸿蒙推送。 | 
| DeviceType | Integer | 推送设备类型(离线推送 EventType = 1不区分设备类型,默认返回0): DeviceType = 0表示未知设备。 DeviceType = 1表示 Apple 设备。 DeviceType = 2表示小米设备。 DeviceType = 3表示华为设备。 DeviceType = 4表示 Google 设备。 DeviceType = 5表示魅族设备。 DeviceType = 6表示 OPPO 设备。 DeviceType = 7表示 vivo 设备。 DeviceType = 8表示荣耀设备。 DeviceType = 9表示鸿蒙设备。 | 
| PushStage | Integer | 推送阶段: PushStage = 1表示推送发送。 PushStage = 2表示推送触达。 PushStage = 3表示推送点击。 | 
| ErrCode | Integer | 推送事件结果: ErrCode = 0表示成功。 ErrCode 非0表示失败。 | 
| ErrInfo | String | 推送事件结果描述,可能为空。 | 
应答包示例
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0 // 0为回调成功,1为回调出错}
应答包字段说明
| 字段 | 类型 | 说明 | 
| ActionStatus | String | 请求处理的结果: OK 表示处理成功。 FAIL 表示失败。 | 
| ErrorCode | Integer | 错误码。 | 
| ErrorInfo | String | 错误说明。 |