推送数据回调
更新时间:2023-06-06
背景
为支持推送开发者做业务统计,推送云端提供http 回调功能,用户提供回调地址A,推送云端对消息到达或点击情况做聚合,并回调用户所提供的地址A,方便用户做推送消息的统计和分类。
整体流程
用户在调用push-openapi接口时,传递参数cbparams,推送服务端会下发消息到客户端,客户端收到消息后,将送达、展示和点击结果返回给推送服务端,推送服务端做相应聚合后,将结果回调至用户提前设置好的回调地址A,返回结果不保证有序、可能存在重复数据。
接入流程
a) 开发者与推送管理员沟通,管理员给指定应用开通推送数据回调功能;
b) 开发者在移动APP推送平台配置完毕后,应用的推送消息的到达或点击情况经过聚合后,会回调到地址A;
c) 开发者的回调地址A可接收相应回调信息,做相关调试;
d) 如需更换回调接口或停止回调功能,直接在推送平台操作即可。
调用方法
用户在调用pushopenapi时,传递参数cbparams,回调数据时,会以extInfo字段返回,没有设置该字段时,返回结果extInfo字段为空字符串
curl -H "Content-Type: application/json" -XPOST
"https://push.safe.baidu.com/push/api/open/v1/message/broadcast?appkey=10001&sign=354e0bbf6a80b07b61bd9637e45b3a32×tamp=1543310683" -d
'{"message_type":0,"notification":{"style":0,"title":"111","content":"111","action":
{"action_type":9,"url":"http://www.baidu.com"}},"option":{"expire":6000},"cbparams":"test3"}'
回调数据
回调方式:HTTP POST
推送回调返回数据格式
{
"appkey":"700000127",
"result":[
{
"appkey":"700000127",
"msgId":"2003", //消息id
"type":0, //类型: 1 到达 2展示 3点击 0 下发 4 预计下发
"uuid":"5|0|3b538693701d9f45e02475afb6d1c0b9",
"cuid":"7867C67230989C1768BD7177984A31CD|458629830447168", //百度内部cuid
"extInfo":"test3", //用户在发送消息时的附加信息
"ts":1551348257, //送达或点击时间
"brand":"XIAOMI", // 设备厂商信息,枚举值:XIAOMI HUAWEI MEIZU VIVO OPPO OTHER
"version":"4.2.1" //应用版本
},
{
"appkey":"700000127",
"msgId":"2003",
"type":1,
"uuid":"5|0|196ad627ee06013df53d9e1b94f5ece7",
"cuid":"4F9F61A4F3ADCCAF0DA56ACACA936779|654424560701253",
"extInfo":"test3",
"ts":1551341736,
"brand":"XIAOMI", // 设备厂商信息,枚举值:XIAOMI HUAWEI MEIZU VIVO OPPO OTHER
"version":"4.2.1" //应用版本
}
],
"ts":1551674406
}
字段说明:
参数 | 类型 | 说明 |
---|---|---|
appkey | string | 用户应用appkey |
result | ResultInfo组成的数组 | 具体回调信息 |
ts | int | 接口返回时间 |
ResultInfo内包含以下字段
参数 | 类型 | 说明 |
---|---|---|
appkey | string | 用户应用appkey |
msg_id | string | 消息id |
type | int | 结果类型: 0 :下发 1 :到达 2 :展示 4 :预计下发 |
uuid | string | 推送设备id |
cuid | string | 百度内部cuid |
extInfo | string | 附加信息,与调用接口是传递的cbparams值相同 |
ts | int | 事件发生的时间戳 |
brand | string | 设备厂商信息,枚举值: XIAOMI HUAWEI MEIZU VIVO OPPO OTHER |
version | string | 应用版本 |
alias | string | 应用别名 (默认不回调,需慧推配置后才能回调) |
plat | int | 下发通道 1:厂商通道 为空时则为自有通道下发 仅在下发回调(type=0)时有效 |
接口鉴权
为方便开发者鉴权,接口返回header中增加了以下三个参数
参数 | 类型 | 说明 |
---|---|---|
appkey | string | 用户应用appkey |
ts | string | 秒级别时间戳 |
token | string | 鉴权token |
token算法如下:
md5(ak+ts+master_secret)
举例:
参数 | 值 |
---|---|
appkey | 686060166 |
ts | 1686023188 |
master_secret(慧推平台获取) | dbb32b4da3c33220fd1dc7dec2cf2493 |
token | ae9c853a6ef1332fd61a2df500a9cc77 |
token = md5(6860601661686023188dbb32b4da3c33220fd1dc7dec2cf2493) = ae9c853a6ef1332fd61a2df500a9cc77
备注:请求参数中同样有这三个参数,用户也可使用请求参数做鉴权