全员/标签/单推回调

最近更新时间:2026-03-23 15:31:21

我的收藏

功能说明

开启推送插件后,推送结果可以通过配置基础回调的方式,将结果转发给 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, // 推送阶段
"VendorInfo": {
"FCM": { // 消息推送到FCM,这里包含了FCM厂商信息
"PushID": "xxxx", // 推送到FCM后,FCM推送返回的FCM厂商推送ID
"ChannelID": "xxxx" // 发起推送时设置的FCM通知渠道字段值
},
},
"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, // 推送阶段
"VendorInfo": {
"Hmony": { // 消息推送至鸿蒙,这里包含了鸿蒙厂商信息
"PushID": "xxxx" // 推送到鸿蒙后,鸿蒙推送返回的鸿蒙推送ID
},
},
"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表示推送点击。
VendorInfo
Object
推送发送给厂商时设置的关键参数以及厂商返回的推送 ID,如果推送发送成功了但是设备没有收到,用户可以获取这个 ID 去厂商自助咨询具体原因。注意:这个字段只有在PushStage = 1时才会带上。发往不同推送厂商的信息封装到不同的 Object 里:
APNs:Object,苹果推送信息,推送发给 APNs 时才有这个字段。字段内容见下面对 APNs 对象 的描述。
XiaoMi:Object,小米推送信息,推送发给小米时才有这个字段。字段内容见下面对 XiaoMi 对象 的描述。
Huawei:Object,华为推送信息,推送发给华为时才有这个字段。字段内容见下面对 Huawei 对象 的描述。
FCM:Object,Google FCM推送信息,推送发给 FCM 时才有这个字段。字段内容见下面对 FCM 对象 的描述。
Meizu:Object,魅族推送信息,推送发给魅族时才有这个字段。字段内容见下面对 Meizu 对象 的描述。
OPPO:Object,OPPO推送信息,推送发给 OPPO 时才有这个字段。字段内容见下面对 OPPO 对象 的描述。
Vivo:Object,Vivo推送信息,推送发给 Vivo 时才有这个字段。字段内容见下面对 Vivo 对象 的描述。
Honor:Object,荣耀推送信息,推送发给荣耀时才有这个字段。字段内容见下面对 Honor 对象 的描述。
Hmony:Object,鸿蒙推送信息,推送发给鸿蒙时才有这个字段。字段内容见下面对 Hmony 对象 的描述。
ErrCode
Integer
推送事件结果:
ErrCode = 0表示成功。
ErrCode 非0表示失败。
ErrInfo
String
推送事件结果描述,可能为空。

APNs Object 描述

字段
类型
说明
PushID
string
推送成功后,APNs 返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询APNS推送时可能需要提供这个 ID 用于排查问题。
MutableContent
Integer
发起推送时设置的参数。含义:为 1 表示开启 iOS 10+ 的推送扩展,默认为0。
InterruptionLevel
string
发起推送时设置的参数。含义:iOS 15+ 的推送通知级别,取值只能是 active、critical、passive、time-sensitive 中的一个,详情请参见:APNs InterruptionLevel 描述。
ContentAvailable
Integer
发起推送时设置的参数。为 1 表示是 iOS 静默推送,无通知栏弹窗,苹果建议1小时最多推送3条静默消息。详情请参见:APNs Background Notification

XiaoMi Object 描述

字段
类型
说明
PushID
string
推送成功后,小米返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询小米推送时可能需要提供这个 ID 用于排查问题。
ChannelID
string
发起推送时设置的参数。含义:小米推送 MIUI 10 及以上的通知类别(Channel)适配字段。详细请参见:小米消息分类。该字段不为空时,会覆盖控制台推送证书配置的 ChannelID 值。

Huawei Object描述

字段
类型
说明
PushID
string
推送成功后,华为返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询华为推送时可能需要提供这个 ID 用于排查问题。
ChannelID
string
发起推送时设置的参数。含义:华为推送 EMUI 10.0 及以上的通知渠道字段。该字段不为空时,会覆盖控制台推送证书配置的 ChannelID 值。
Category
string
发起推送时设置的参数。含义:华为推送消息分类,用于标识消息类型,详细请参见: category 描述。
该字段不为空时,会覆盖控制台推送证书配置的 category 值。
FCM Object 描述
字段
类型
说明
PushID
string
推送成功后,FCM 返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询 FCM 推送时可能需要提供这个 ID 用于排查问题。
ChannelID
string
发起推送时设置的参数。含义:Google 推送 Android 8.0 及以上的通知渠道字段。
Meizu Object 描述
字段
类型
说明
PushID
string
推送成功后,魅族返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询魅族推送时可能需要提供这个 ID 用于排查问题。
NoticeMsgType
integer
发起推送时设置的参数。含义:魅族推送消息分类,“0”代表公信消息,“1”代表私信消息,详细请参见: 魅族消息分类说明。
该字段不为空时,会覆盖控制台魅族推送证书配置的消息分类。
OPPO Object 描述
字段
类型
说明
PushID
string
推送成功后,OPPO 返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询 OPPO 推送时可能需要提供这个ID用于排查问题。
ChannelID
string
发起推送时设置的参数。含义:OPPO 推送 Android 8.0 及以上的 NotificationChannel 通知适配字段。
该字段不为空时,会覆盖控制台推送证书配置的 ChannelID 值。
Category
string
发起推送时设置的参数。含义:OPPO 推送消息分类,用于标识消息类型,详细请参见: category 描述
该字段不为空时,会覆盖控制台推送证书配置的 category 值。
Vivo Object描述
字段
类型
说明
PushID
string
推送成功后,Vivo 返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询Vivo 推送时可能需要提供这个 ID 用于排查问题。
Category
string
发起推送时设置的参数。含义:Vivo 推送消息分类,用于标识消息类型,详细请参见 category 描述
该字段不为空时,会覆盖控制台推送证书配置的 category 值。
Honor Object 描述
字段
类型
说明
PushID
string
推送成功后,荣耀返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询荣耀推送时可能需要提供这个 ID 用于排查问题。
Importance
string
发起推送时设置的参数。含义:荣耀推送消息分类,取值为 LOW、NORMAL,详细请参见:荣耀消息分类。
Hmony Object 描述
字段
类型
说明
PushID
string
推送成功后,鸿蒙返回的厂商推送 ID,推送失败时该字段可能为空。如未收到推送,咨询鸿蒙推送时可能需要提供这个 ID 用于排查问题。

应答包示例

{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0 // 0为回调成功,1为回调出错
}

应答包字段说明

字段
类型
说明
ActionStatus
String
请求处理的结果:
OK 表示处理成功。
FAIL 表示失败。
ErrorCode
Integer
错误码。
ErrorInfo
String
错误说明。