消息推送 API
概述
本文档为后台对接 TMF 推送服务相关说明,TMF 推送服务按用户范围分个性化推送和全量推送,按到达客户端后的呈现方法分为通知栏推送和透传消息推送,具体各种推送使用方法见下文详细说明。
个性化推送 API
功能介绍
针对指定设备或者用户进行通知栏消息的推送或者消息透传。
请求地址
http://172.16.0.34:30016/data/1827/forward
请求方式
POST
请求字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
cmdId | int | 否 | 指令 ID,6238 - 通知栏消息推送,6362 - 透传消息 |
productId | int | 否 | 用户所属产品的 ID,即应用标识 Pid。 请在控制台 > 我的应用里查看 |
taskId | int | 否 | 业务自定义,唯一标识一批次的个性化推送 |
expireTime | int | 否 | 过期时间戳,以秒为单位, 从 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总秒数。![]() |
cmdData | string[] | 否 | 消息数据,通知栏消息和透传消息内容不同 |
busiType | int | 否 | 消息推送 23 |
pushChannel | int | 否 | 推送数据使用的通道, 0 - 系统指定通道,1 - 系统自有通道 |
guid | string | 是 | TMF 内部 ID(与 uid 2 选 1,两者非空优先 guid) |
uid | string | 是 | 账号 ID(与 guid 2 选 1,两者非空优先 guid),即App调用setUserId接口上报的ID |
seqNo | int | 是 | 保留字段,请填 0 |
prior | int | 是 | 通知栏消息优先级,1 - 服务通知 2 - 运营消息,默认为运营消息 |
android | Object | 是 | 向Android用户推送通知栏消息时的可选扩展字段,具体字段请参见AndroidPushConfig |
ios | Object | 是 | 向iOS用户推送通知栏消息时的可选扩展字段,具体字段请参见IosPushConfig |
msgType | string | 是 | 消息类型,当且仅当下发通知栏消息时有效,只用于记录日志和数据统计 |
taskName | string | 是 | 任务名 |
AndroidPushConfig参数说明
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
channelId | string | 是 | 安卓消息通道ID,适用于小米、OPPO和FCM,默认为空,小米用户必填 |
category | string | 是 | 消息场景名,适用于华为和VIVO手机用户,默认为空,2023-03-30新增字段,华为和VIVO用户必填 |
IosPushConfig参数说明
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
interruptionLevel | int | 是 | 中断级别,0 - passive, 1 - active, 2 - time-sensitive, 3 - critical ,默认为1 ,中断级别的具体含义请见苹果官网说明。 |
TMF消息优先级与各厂商的消息类型对应关系
- TMF消息分类
TMF继续保持将消息分类服务通知和运营消息两大类,每一个大类进一步细分二级分类
- TMF消息优先级与各厂商的消息类型对应关系
厂商 | 运营消息 | 服务通知 | 服务通知申请方式 |
---|---|---|---|
VIVO | 应用单日可推送运营消息总量: -具备《互联网新闻信息服务许可证》新闻类:3倍通知开启有效用户数 -其他:-2倍通知开启有效用户数 单用户单日接收运营消息数量上限: -具备《互联网新闻信息服务许可证》新闻类:5条 -其他:2条 |
系统消息: - 应用默认单日可推送系统消息总量为3倍通知开启有效用户数,可邮件申请不限量 - 单用户单日接收系统消息数量上限不限 |
默认开通。每天可推送的消息总量为3倍通知开启有效用户数, 如果需要增加每天可推送的消息总量,请向厂商申请(邮件申请) |
OPPO | 单用户单日接收公信消息数量上限: -具备《互联网新闻信息服务许可证》新闻类:5条 -其他:2条 |
私信 - 总量: 不限制 - 单用户: 不限制 |
需要向厂商申请开通私信通道 (私信通道申请(新))。 其中: - ChannelId: high_system - 通道名称:服务通知 - 在OPPO管理系统标记将通道类设置为私信 |
小米 | 应用单日可推送公信消息总量限制: -具备《互联网新闻信息服务许可证》新闻类:3倍通知开启有效用户数; -其他:2倍通知开启有效用户数 单用户单日接收公信消息数量上限: -具备《互联网新闻信息服务许可证》新闻类:8条 -其他:单用户单日接收消息数量上限为5条 |
私信消息(不限制) | 需要自己注册公私信消息的channel,channelId由小米分配,不能自己指定。 不申请时默认限制:限定单日推送数据限制为1倍通知开启有效用户数,单用户接收1条 |
华为 | 资讯营销类消息: -具备《互联网新闻信息服务许可证》新闻类:单用户单日接收消息数量上限为5条 -其他:单用户单日接收消息数量上限为2条 |
服务与通讯(不限制) | - 取消智能分类,只支持自分类 - 未接入自分类的应用默认可发送营销消息 - 下发息时必须带category,否则将为认为是营销消息 厂商申请(华为自分类权益) |
荣耀 | 资讯营销类消息: -具备《互联网新闻信息服务许可证》新闻类:单用户单日接收消息数量上限为5条 -其他:单用户单日接收消息数量上限为2条 |
服务与通讯(不限制) | 目前,所有消息默认通过消息自分类方式进行分类处理,荣耀推送服务将充分信任您提供的分类结果,并且按您提供的分类结果展示对应信息。 |
FCM | 普通消息(不限制) | 高优先级消息(不限制) | 默认开通,如需自定义通道,可以带上channelID参数。 |
APNS | 中断级别中的active等级 | 中断级别中的time-sensitive等级 | 默认开通 |
- 二级分类与国内各Android厂商的分类对应关系如下表:
厂商通道 | 服务通知的二级分类对应厂商的二级分类 | 运营消息的二级分类对应厂商的二级分类 |
---|---|---|
华为 | 服务与通讯类消息的二级分类(category) | 资讯营销类消息的二级分类(category) |
荣耀 | 服务与通讯类消息的二级分类 | 资讯营销类消息的二级分类 |
小米 | 私信通道(channel) | 公信通道(channel) |
VIVO | 系统消息场景(category) | 运营消息场景(category) |
OPPO | 私信通道(channel) | 公信通道(channel) |
注意
客户根据自己的业务需要和厂商规范,做好消息分类管理:
- 为每个APP划分类:将消息分为服务通知和运营消息两大类和二级分类;
- 如果没有特殊要求,建议申请一个通用的服务通知二级分类和一个通用的运营消息二级分类;
TMF个性化推送API支持业务在调用时填写具体的消息分类(prior、channel和 category);
TMF控制台配置的批量消息推送任务只推送TMF运营消息,只使用通用的运营消息分类:
- 在小米开发平台申请通用的运营消息channel,用来在控制台等入口向小米用户推送运营消息;
- 在华为开发平台申请消息自分类权益。
- 在OPPO开发平台为运营消息申请channelID为tmf_push_channel的channel,用来在控制台等入口向OPPO用户推送运营消息,channelID为high_system的channel,用来在控制台等入口向OPPO用户推送系统消息,且需要升级推送SDK。
- 使用控制台推送运营消息时,其他国内Android厂商可以不用向厂商申请运营消息权限。
客户调用个性化推送API时,填写具体的消息分类参数(prior,channel和category字段)。
请求示例
通知栏推送
推送通知栏消息时cmdData数组的元素如下:
序号 | 字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|---|
1 | title | string | 否 | 通知栏标题 |
2 | content | string | 否 | 通知栏内容 |
3 | jump | string | 是 | json格式的跳转参数,格式:"{\"type\":jumpType,\"url\":\"jumpUrl\"}",跳转参数的具体字段说明请见下面的“跳转参数说明”,如果不需要,请填"",仅在Android平台上有效 |
4 | extKV | string | 是 | json格式的扩展参数,参数中的Key和Value字段必须为string类型,格式:{\"Key1\":\"Value1\“,\"Key2\":\"Value2\""},如果不需要,请填"" |
5 | sound | string | 是 | 提示声音文件名,仅在iOS平台有效,如果是非iOS平台用户或不需要,请填"" |
6 | badge | string | 是 | APP显示的角标值,仅在iOS平台有效,如果是非iOS平台用户或不需要,请填"" |
跳转参数说明:
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
type | int | 否 | 跳转类型,取值:1- 应用; 2 - url; 3 - 自定义 |
url | String | 否 | 跳转地址 |
{
"req": {
"cmdId": 6238,
"guid": "test",
"productId": 8903,
"taskId": 123,
"expireTime": 1561978029,
"cmdData": [
"abcdefg", //标题
"dadaf", //内容
"{\"type\":1,\"url\":\"www.test.com\"}", // type :1应用; 2 url; 3自定义
"{\"youkey\":\"values\"}", //附加参数kv
"sound", //sound文件名,仅iOS使用
"badge" //badge,badge取值说明:空 - 服务端不下发badge,0 - 清除App的badge,具体数值 - App的badge将设置成该值 ,仅iOS使用
],
"busiType": 23,
"uid": "test",
"seqNo": 0,
"pushChannel": 0,
"msgType":"运营消息",
"taskName":"xx任务"
}
}
消息透传
推送透传消息时cmdData数组中的元素如下:
序号 | 字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|---|
1 | data | string | 否 | 自定义数据 |
{
"req": {
"cmdId": 6362,
"guid": "test",
"productId": 8903,
"taskId": 123,
"expireTime": 1561978029,
"cmdData": [
"data" //要透传的数据
],
"busiType": 23,
"uid": "test",
"seqNo": 0,
"pushChannel": 0
}
}
响应字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 网关返回码 |
data | Data | 否 | 响应数据 |
网关返回码 ret
ret取值 | 说明 |
---|---|
0 | 成功 |
1001 | 失败 |
1002 | 参数错误 |
1003 | 非法接口地址 |
1004 | 不是 Json 数据 |
1005 | 非法响应 |
1006 | 服务过载 |
1007 | 没有调用接口的权限 |
1101 | 身份校验失败 |
Data
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
resp | Resp | 否 | 具体数据 |
Resp
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 数据返回码 |
data.resp.ret
ret取值 | 说明 |
---|---|
0 | 成功 |
10001 | 数据已过期,参数中的 expireTime 比当前时间早 |
10002 | 数据生成失败,可能原因有: - 系统中没有 cmdId 标识的数据模板 - 通知栏消息参数错误:至少要有标题和内容参数、跳转参数和扩展参数格式错误(不是正确的 Json 数据) - iOS VOIP 消息参数错误:只能有一个 Json 格式的参数 |
10003 | 推送失败,可能的原因有: - 消息已经推送,不允许向用一个用户重复推送(通过 id、seqNo 和 busiType标识一条消息) - 推送通知栏消息时,App 没有上报推送Token - 系统错误,请重试 |
10004 | KV 参数获取失败,通知栏消息的扩展参数格式错误(不是正确的Json格式) |
10005 | 跳转参数获取失败,通知栏消息的跳转参数格式错误(不是正确的Json格式) |
10006 | 获取 guid 失败, 由于 App 未上报 uid 或已解绑 uid,通过 uid 找不到对应的guid |
10007 | 获取 profile 失败,非法的 guid,通过 guid 找不到用户信息 |
10008 | 系统错误,序列化数据失败 |
10009 | 不允许推送,可能的原因有: - 当向iOS用户推送消息时,TMF.QuickIssueServer配置中关闭了iOS消息推送 - 当向iOS用户推送 VOIP消息时,TMF.QuickIssueServer配置中关闭了VOIP消息推送 |
响应示例
{
"ret": 0,
"data": {
"resp": {
"ret": 0
}
}
}
推送 API
功能介绍
针对指定指定用户群体进行通知栏消息的推送或者消息透传。
请求地址
http://172.16.0.34:30016/data/1828/forward
请求方式
POST
请求字段
Audience
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
type | string | 否 | 推送对象类型,取值范围:all /guid /uid /imei /model /area /buildno /customTag |
content | string | 否 | 推送内容,当有多个时,用英文 ; 号分隔。若 type 为 customTag 时,格式为:基于数组的 JSON 字符串,字段有:table - 固定为 tag ,column - 标签类型 id,value - 标签值(若涉及 URL,请自行对 URL 进行转义),operation - == /!= |
fileUrl | string | 是 | 推送对象文件URL,文件的每一个行都是一个推送对象 说明: 1. 推送对象文件名只能由数字、英文字母和_组成 2.在调用此api之前,调者用必须先将推送对象文件上传到文件服务器以获取下载URL,如COS/内部文件系统等,并确保在TMF控制台所在的服务器上使用推送对象文件URL能正常下载推送对象文件 3.当推送对象类型为 guid、uid、 imei、model、area、buildno时有效 |
fileMd5 | string | 是 | 推送对象文件的 MD5(当有 fileUrl 字段时,需要有该字段) |
relation | string | 是 | 交并集关系,取值范围:0 - 交集,1 - 并集(当 type 为 customTag 时,则有该字段) |
请求示例
通知栏推送
推送通知栏消息时cmdData数组的元素如下:
序号 | 字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|---|
1 | title | string | 否 | 通知栏标题 |
2 | content | string | 否 | 通知栏内容 |
3 | jump | string | 是 | json格式的跳转参数,格式:"{\"type\":jumpType,\"url\":\"jumpUrl\"}",跳转参数的具体字段说明请见下面的“跳转参数说明”,如果不需要,请填"",仅在Android平台上有效 |
4 | extKV | string | 是 | json格式的扩展参数,参数中的Key和Value字段必须为string类型,格式:{\"Key1\":\"Value1\“,\"Key2\":\"Value2\""},如果不需要,请填"" |
跳转参数说明:
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
type | int | 否 | 跳转类型,取值:1- 应用;2 - url;3 - 自定义 |
url | String | 否 | 跳转地址 |
{
"req": {
"cmdId": 6238,
"productId": 8903,
"platform": "Android",
"taskName": "taskName",
"expireTime": 1561978029,
"cmdData": [
"abcdefg",
"dadaf",
"{\"type\":1,\"url\":\"www.test.com\"}",
"{\"youkey\":\"values\"}"
],
"isTest": 0,
"audience": [
{
"type": "imei",
"content": "",
"fileUrl": "http://172.16.0.34:30010/private/2020031116155929020_1",
"fileMd5": "c26598d376a2c1261abacb2834cb3cbe"
},
{
"type": "model",
"content": "华为",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "area",
"content": "gz;sz",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "buildno",
"content": "buildno1",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "uid",
"content": "qianghou",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "all",
"content": "999999",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "customTag",
"relation": "1",
"content": "[{\"table\":\"tag\",\"column\":\"12002\",\"operation\":\"==\",\"value\":\"1\"}, {\"table\":\"tag\",\"column\":\"12005\",\"operation\":\"!=\",\"value\":\"tag2_value1\"}]",
"fileUrl": "",
"fileMd5": ""
}
]
}
}
消息透传
推送透传消息时cmdData数组中的元素如下:
序号 | 字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|---|
1 | data | string | 否 | 自定义数据 |
{
"req": {
"cmdId": 6362,
"productId": 8903,
"platform": "Android",
"taskName": "taskName",
"expireTime": 1561978029,
"cmdData": ["data"],
"isTest": 0,
"audience": [
{
"type": "imei",
"content": "",
"fileUrl": "http://172.16.0.34:30010/private/2020031116155929020_1",
"fileMd5": "c26598d376a2c1261abacb2834cb3cbe"
},
{
"type": "model",
"content": "华为",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "area",
"content": "gz;sz",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "buildno",
"content": "buildno1",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "uid",
"content": "qianghou",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "all",
"content": "999999",
"fileUrl": "",
"fileMd5": ""
},
{
"type": "customTag",
"relation": "1",
"content": "[{\"table\":\"tag\",\"column\":\"12002\",\"operation\":\"==\",\"value\":\"1\"}, {\"table\":\"tag\",\"column\":\"12005\",\"operation\":\"!=\",\"value\":\"tag2_value1\"}]",
"fileUrl": "",
"fileMd5": ""
}
]
}
}
响应字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 网关返回码 |
data | Data | 否 | 响应数据 |
网关返回码 ret
ret取值 | 说明 |
---|---|
0 | 成功 |
1001 | 失败 |
1002 | 参数错误 |
1003 | 非法接口地址 |
1004 | 不是Json数据 |
1005 | 非法响应 |
1006 | 服务过载 |
1007 | 没有调用接口的权限 |
1101 | 身份校验失败 |
Data
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
resp | Resp | 否 | 具体数据 |
Resp
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 数据返回码 |
taskId | long | 是 | 任务单 ID |
msg | string | 是 | 数据返回描述 |
data.resp.ret
ret取值 | 说明 |
---|---|
0 | 成功 |
10101 | 系统错误 |
10102 | 参数错误 |
10103 | 参数有误,productId 参数必须为正整数 |
10104 | 参数有误,platform 参数必须为 Android 或者 iOS |
10105 | 参数有误,cmdId 参数必须为正整数 |
10106 | 参数有误,expireTime 参数(单位为秒)不可为空 |
10107 | 参数有误,expireTime 参数不能小于当前时间 |
10108 | 参数有误,cmdData 参数不可为空 |
10109 | 参数有误,audience 参数不可为空 |
10110 | 参数有误,taskType 参数传入有误 |
10111 | 参数有误,无法找到 cmdId 参数对应的信息,请检查 |
10112 | 推送条件有误,解析 audience 失败,缺少推送条件 |
10113 | 送条件有误,为了安全起见,测试单只允许推送条件为:guid、imei、uid |
10114 | 推送条件有误,为了安全起见,灰度单只允许推送条件为:guid、imei、uid、buidno、model、area |
10115 | 参数 audience 格式有误,content、fileUrl 不可为空 |
10116 | 推送条件(type:具体值)有误,ID 类推送条件(guid/imei/area/buildno/uid/model)的 content 分别最大支持1000个 |
10117 | 推送条件(type:具体值)有误,从 fileUrl:具体值下载文件失败,错误信息:(具体报错信息) |
10118 | 推送条件(type:具体值)有误,ID 类推送条件(guid/imei/area/buildno/uid/model)支持文件 URL 的方式,但是一次推送只支持一种推送条件用fileUrl,且下载的文件<=100m |
10119 | 推送条件(type:具体值)有误,从fileUrl:具体值下载的文件大小不能超过100M |
10120 | 推送条件(type:具体值)有误,从 fileUrl:具体值获取到的文件 md5 与参数 fileMd5 不一致 |
10121 | 推送条件(type:具体值)有误,从 fileUrl:具体值获取到的内容为空,请检查(一行一个) |
10122 | 推送条件(type:具体值)有误,relation 参数非法,参考值:0 - 交集,1 - 并集 |
10123 | 推送条件(type:具体值)有误,content 必须为正确的 json 格式,请参照用例 |
10124 | 推送条件(type:具体值)有误,解析到的 content 不可为空 |
10125 | 推送条件(type:具体值)有误,tag 值必须为 tag |
10126 | 推送条件(type:具体值)有误,operation 值只支持==,!= |
10127 | 推送条件(type:具体值)有误,非法 type 值,无法识别 |
10128 | 推送条件有误,添加“自定义标签”维度时,请同时增加“全量”维度 |
10129 | 推送条件有误,自定义标签数不能超过20个 |
10130 | 推送条件有误,type 不可重复 |
10131 | 推送内容有误,无法解析指令信息 |
10132 | 保存任务失败,(具体报错信息) |
响应示例
{
"ret": 0,
"data": {
"resp": {
"ret": 0,
"taskId": 1234567890,
"msg": "推送成功。可登录控制台在“消息推送 > 历史明细“查看推送记录"
}
}
}
推送结果查询 API
功能介绍
对推送单进行状态控制
请求地址
http://172.16.0.34:30016/data/1960/forward
请求方式
POST
请求字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
taskId | string | 否 | 推送单 ID |
请求示例
{
"req":{
"taskId":"2020033113075669466"
}
}
响应字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 网关返回码 |
data | Data | 否 | 响应数据 |
网关返回码 ret
ret取值 | 说明 |
---|---|
0 | 成功 |
1001 | 失败 |
1002 | 参数错误 |
1003 | 非法接口地址 |
1004 | 不是 Json 数据 |
1005 | 非法响应 |
1006 | 服务过载 |
1007 | 没有调用接口的权限 |
1101 | 身份校验失败 |
Data
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
resp | Resp | 否 | 具体数据 |
Resp
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 数据返回码 |
msg | string | 否 | 数据返回码具体含义 |
taskStatus | object | 否 | 推送任务结果数据 |
publishAmount | int | 否 | 服务端发起推送数量 |
reportAmount | int | 否 | 客户端收到推送数量 |
data.resp.ret
ret取值 | 说明 |
---|---|
0 | 查询成功。可登录控制台在 消息推送 > 历史明细 > 实时统计查看详细信息 |
10101 | 系统错误 |
10201 | 参数有误,taskId 不可为空 |
10301 | 参数有误,无法获取推送任务单信息 |
响应示例
{
"ret":0,
"data":{
"resp":{
"ret":0,
"msg":"查询成功。可登录控制台在 “消息推送 > 历史明细 > 实时统计“ 查看详细。 ",
"taskStatus":{
"publishAmount":0,
"reportAmount":0
}
}
}
}
推送状态控制 API
功能介绍
查询指定推送单号的简要推送结果。
请求地址
http://172.16.0.34:30016/data/1961/forward
请求方式
POST
请求字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
taskId | string | 否 | 推送单 ID |
user | string | 否 | 调用用户名 |
action | string | 否 | 需要设置的推送单状态 |
remark | string | 否 | 备注 |
action | 说明 |
---|---|
Submit | 提交审批 |
Terminate | 结束 |
Reject | 驳回审批 |
Recall | 撤回 |
Approve | 审批通过 |
Suspend | 挂起 |
Resume | 恢复(挂起的逆操作) |
ImmediatelyPush | 直接投放 |
SaveDraft | 存草稿 |
请求示例
{
"req":{
"taskId":"2020011715420835906",
"user":"system",
"action":"Submit",
"remark":"test"
}
}
响应字段
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 网关返回码 |
data | Data | 否 | 响应数据 |
网关返回码 ret
ret取值 | 说明 |
---|---|
0 | 成功 |
1001 | 失败 |
1002 | 参数错误 |
1003 | 非法接口地址 |
1004 | 不是 Json 数据 |
1005 | 非法响应 |
1006 | 服务过载 |
1007 | 没有调用接口的权限 |
1101 | 身份校验失败 |
Data
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
resp | Resp | 否 | 具体数据 |
Resp
字段 | 类型 | 是否可选 | 说明 |
---|---|---|---|
ret | int | 否 | 数据返回码 |
msg | string | 否 | 数据返回码具体含义 |
data.resp.ret
ret取值 | 说明 |
---|---|
0 | 可登录控制台在消息推送 > 历史明细查看详细信息 |
10101 | 系统错误 |
10201 | 参数有误,taskId 不可为空 |
10202 | 参数有误,action 参数不可为空 |
10203 | 参数有误,user 参数不可为空 |
10204 | 参数有误,无法获取推送任务单信息 |
响应示例
{
"ret":0,
"data":{
"resp":{
"ret":10101,
"msg":"系统错误,2020011715420835906任务状态为投放结束不能提交"
}
}
}