消息回调设置 vip
最近更新:2021-12-15

消息回调设置 vip

如果需要获得一条消息对于所有目标的发送状态,可以在高级功能-回调设置中配置一个回调地址,勾选所需回调的状态类型,开启回调即可。

此功能仅针对极光 VIP 用户提供,提供「目标有效/无效、提交成功/失败、送达成功/失败、点击、撤回成功/失败」9 种消息状态,需在官网控制台设置所需回调的状态。

如需要开通此功能,请联系:商务客服

控制台配置操作说明

添加的第一个回调地址将自动被设置为默认地址,默认地址不允许删除。详细说明见控制台操作指南

在调用 rest API 发送消息时可以设置临时的 callback 地址,该地址必须在控制台进行配置才有效,控制台允许添加最多 5个回调地址。当发送消息未设置临时 callback 地址时,回调消息将回调给默认地址。 当关闭回调开关后,将不再进行消息回调。

可以对回调地址进行有效性测试、删除、设为默认地址。

回调地址的有效性验证

回调地址必须以 http:// 或 https:// 开头,不支持自定义端口。填写后点击测试,校验通过后才可以使用。

校验规则:极光将给回调 URL 发起一个 GET 请求并附带一个随机字符串的参数 echostr,开发者需要在 Response Body 里原样输出 echostr 的值。

请求示例:curl -X GET http://callback2pc.com/my/callback/api/sd\?echostr\=571fd1bfaadc4919a652d56d13925e0f -u 'channelkey:MasterSecret'

测试通过后将自动添加进回调地址列表。

jpush_web

回调方式

当有回调消息时,将采用 HTTP POST 的方式向开发者填写的回调 URL 提交通知消息。需要注意的是,如果回调失败,那么极光将会在一定的时间间隔后重试,重试回调的时间间隔为 50 秒,最多重试 3 次,3 次均失败则丢弃

如果开发者的回调服务返回了 HTTP code 200,则表示回调成功,否则认为回调失败。

数据将采取批量回调的方式:每 100个数据回调一次,如果超过 10 秒没有 100 个数据也回调。

回调的安全校验

如果需要校验回调信息是否来自于极光,开发者服务器可以校验极光请求头(HTTP Header)中的Authorization信息,详细说明如下:

1、格式:Authorization: Basic ${base64_auth_string}。

2、base64_auth_string 的生成算法为:base64(Channelkey:MasterSecret)

3、Channelkey 和 MasterSecret 可以在渠道信息中获取到,开发者将接收到的 Authorization 和自己本地代码按照同样规则生成的 Authorization 作对比,如果一致,则可以认定此回调来自极光。

回调参数

字段名 字段类型 字段说明
type int 类型,取值为0:目标有效/1:目标无效/2:提交成功/3:提交失败/4:送达成功/5:送达失败/6:点击/7:撤回成功/8:撤回失败
channelkey String 该条记录所对应的渠道的channelKey
msgid String 该条记录所对应的msgid
userid String 该条记录所对应的用户userid,使用自定义通道ID发送时值为空
sender_id String 该条记录所对应的通道注册ID。向通道下发消息后产生的所有记录,以及使用自定义通道ID发送时有值。举例:如果是App通道,则sender_id就是App的registrationID
sender int 该条记录所对应的下发通道/处理模块,取值:0:UMS系统/1:App/2:微信公众号/3:微信小程序/4:邮件/5:短信/6:钉钉/7:支付宝生活号/9:5G消息
wechatwk_sender int 企业微信通道的通道类别,sender=10(企业微信)时有值,取值 :0:企业微信内部接口(默认),1:企业微信互联企业发送接口
app_platform int App消息下发所对应的设备的操作系统,取值:sender=1(App)时有值,0:Android/1:iOS/2:Web/3:QuickApp
app_sender int App厂商通道,取值:sender=1(App)时有值,0:极光/1:华为/2:OPPO/3:vivo/4:小米/5:魅族/6:FCM/8:APNS
sent_time long 产生该记录的时间点,秒级时间戳
error JSON Object 无效/提交失败/送达失败原因,当type=1、3、5、8时有值,{"code":,"message":""}
params JSON Object 自定义参数,用户在发送消息请求时在 callback 里自行指定的参数

回调消息体示例:

[{     "type": 3,     "channelkey":"xxxxxxx",     "msgid":  "11111",     "userid": "xxxxxxx",     "sender": 1,     "app_platform": 0,     "app_sender": 0,     "sent_time": 1557133599,     "error": {"code":1014,"message":""},     "params": {         "name":"joe",         "age":26     } },{     "type": 3,     "channelkey":"xxxxxxx",     "msgid":  "11111",     "user_id": "xxxxxxx",     "sender": 1,     "app_platform": 0,     "app_sender": 0,     "sent_time": 1557133599,     "error": {"code":1014,"message":""},     "params": {         "name":"joe",         "age":26     } }]
          [{
    "type": 3,
    "channelkey":"xxxxxxx",
    "msgid":  "11111",
    "userid": "xxxxxxx",
    "sender": 1,
    "app_platform": 0,
    "app_sender": 0,
    "sent_time": 1557133599,
    "error": {"code":1014,"message":""},
    "params": {
        "name":"joe",
        "age":26
    }
},{
    "type": 3,
    "channelkey":"xxxxxxx",
    "msgid":  "11111",
    "user_id": "xxxxxxx",
    "sender": 1,
    "app_platform": 0,
    "app_sender": 0,
    "sent_time": 1557133599,
    "error": {"code":1014,"message":""},
    "params": {
        "name":"joe",
        "age":26
    }
}]

        
此代码块在浮窗中显示

测试 demo

对于回调的安全性、有效性校验,极光提供了一个demo,可以使用该工具在企业的服务器上实现校验,或参考代码自行实现。

文档内容是否对您有帮助?

Copyright 2011-2022, jiguang.cn, All Rights Reserved. 粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

在文档中心打开