VIVO消息推送服务端API接口文档

(1)/message/auth接口,鉴权码生成方式优化,增加调用频率为10次/s,取消每天10000次数量限制;

VIVO消息推送服务端API接口文档

当前版本:2.9.2

修改记录:

(1)/message/auth接口,鉴权码生成方式优化,增加调用频率为10次/s,取消每天10000次数量限制;

(2)各接口请求体,新增appId,用于跟鉴权信息进行比对,确认是否为应用信息一致,不一致返回错误码10094

一.公共

1.推送超量说明

如果调用接口出现超量限制的返回码,请不要在当天高频次调用服务器相应接口,否则将调低推送量级;

出现“10070:发送总量超出限制”。当天不要调用/message/send 单推接口;

出现“10252:批量发送消息体超出限制”。当天不要调用/message/saveListPayload 保存群推消息公共体接口;

出现“10070:发送总量超出限制”。当天不要调用/message/saveListPayload 保存群推消息公共体接口,以及/message/pushToList 批量推送用户接口;

出现“10254:全量发送超过次数限”。当天不要调用/message/all 全量发送接口;

关于推送量的说明可以参考【vivo推送常见问题汇总】

2.vivo服务器地址

https://api-push.vivo.com.cn

3.公共传入参数

HTTP Header中(推送鉴权接口除外)。

属性名字类型是否必填Y/N描述
authTokenstringY当鉴权成功时会返回该字段,推送消息时需要提供authToken,有效期默认为1天,过期后无法使用

4.高级特性extra

注意:回执目前仅支持单推接口且是正式消息 

属性名字类型是否必填Y/N描述
callbackstringY第三方接收回执的http接口,最大长度128个字符
callback.paramstringN第三方自定义回执参数,最大长度64个字符

二.接口定义

1.鉴权

1.1推送鉴权接口

接口说明

要想调用PUSH接口,任何接入方都要有个鉴权操作。其他接口header中必须携带该参数。

接口返回的参数authToken,一个appId可对应多个token,24小时过期,业务方做中心缓存,1-2小时更新一次。

限制:频率限制,单个app 10次/s。超频返回错误码10094。

访问方式

URL编码方式协议methodContent-Type
/message/authUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST -H     ‘Content-Type:application/json’ -d   ‘${your_request_body}’     https://api-push.vivo.com.cn/message/authRequest body e.g.:{        “appId”:10004,          “appKey”:”25509283-3767-4b9e-83fe-b6e55ac6243e”,        “timestamp”:1501484120000,          “sign”:”8424f52fd5eaedc16474e4f702d230d2″}Response body e.g.:http status 200:业务成功:{         “result”:   0,         “desc”:   “请求成功”,        “authToken”:     “24ojds98fu3jqrioeu982134jieds9fq43u09uaf”}业务异常:{         “result”:   xxx,         “desc”:   “xxx不合法”}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId
appKeystringY用户申请推送业务时获得的appKey
timestamplongYUnix时间戳 做签名用,单位:毫秒,且在vivo服务器当前utc时间戳前后十分钟区间内。
signstringY签名 使用MD5算法,字符串trim后拼接(appId+appKey+timestamp+appSecret),然后通过MD5加密得到的值(字母小写)

 输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
authTokenstring当鉴权成功时才会有该字段,推送消息时,需要提供authToken,有效期默认为1天,过期后无法使用。一个appId可对应多个token,24小时过期,业务方做中心缓存,1-2小时更新一次。

2.单播

2.1单推接口

接口说明

接入方携带消息内容以及用户regId(或alias)进行通知消息推送。针对每个用户发送不同的通知。

使用场景:如物流、订单状态、游戏预约状态、行程状态、聊天(如微信、评论)等。

限制:根据客户端SDK订阅数自动配置,可发送的用户总量可以在开发者后台查看。

访问方式

URL编码方式协议methodContent-Type
/message/sendUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST -H ‘authToken:${your_auth_token}’   -H     ‘Content-Type:application/json’  -d     ‘${your_request_body}’   https://api-push.vivo.com.cn/message/sendRequest body e.g.:{      “appId”:10004,      “regId”:”12345678901234567890123″,      “notifyType”:1,      “title”:”标题1″,      “content”:”内容1″,      “timeToLive”:86400,      “skipType”:2,          “skipContent”:”http://www.vivo.com”,        “networkType”:”1″,      “clientCustomMap”:{              “key1″:”vlaue1”,              “key2″:”vlaue2”    },    “extra”:{              “callback”:”http://www.vivo.com”,              “callback.param”:”vivo”    },          “requestId”:”25509283-3767-4b9e-83fe-b6e55ac6b123″}Response body e.g.:http status 200:业务成功:{         “result”:   0,         “desc”:   “请求成功”,”taskId”:   “121397329”}推送使用的regid或alias不合法,无法送达:{        “result”: 10302,        “desc”: “regId 不合法”,        “invalidUser”: {            “status”: 1,            “userid”:   “15638535410301000000001”      }}业务异常:{         “result”:   xxx,”desc”: “xxx不合法”} http status 500:Internet server error!

接口定义

输入参数:

intent uri

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
regIdstringN应用订阅PUSH服务器得到的id   长度23个字符(regId,alias 两者需一个不为空,当两个不为空时,取regId)
aliasstringN别名 长度不超过40字符(regId,alias两者需一个不为空,当两个不为空时,取regId)
notifyTypeintY通知类型 1:无,2:响铃,3:振动,4:响铃和振动
titlestringY通知标题(用于通知栏消息) 最大20个汉字(一个汉字等于两个英文字符,即最大不超过40个英文字符)
contentstringY通知内容(用于通知栏消息) 最大50个汉字(一个汉字等于两个英文字符,即最大不超过100个英文字符)
timeToLiveintN消息保留时长 单位:秒,取值至少60秒,最长7天。当值为空时,默认一天
skipTypeintY点击跳转类型 1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面
skipContentstringN跳转内容 跳转类型为2时,跳转内容最大1000个字符,跳转类型为3或4时,跳转内容最大1024个字符,skipType传3需要在onNotificationMessageClicked回调函数中自己写处理逻辑。关于skipContent的内容可以参考【vivo推送常见问题汇总】
networkTypeintN网络方式 -1:不限,1:wifi下发送,不填默认为-1
classificationintN消息类型 0:运营类消息,1:系统类消息。不填默认为0
clientCustomMapJSON ObjectN客户端自定义键值对 自定义key和Value键值对个数不能超过10个,且长度不能超过1024字符, key和Value键值对总长度不能超过1024字符。app可以按照客户端SDK接入文档获取该键值对
extraJSON ObjectN高级特性(详见目录:一.公共——5.高级特性 extra)
requestIdstringY用户请求唯一标识 最大64字符
pushModeintN推送模式 0:正式推送;1:测试推送,不填默认为0(测试推送,只能给web界面录入的测试用户推送;审核中应用,只能用测试推送)
auditReviewJSON ArrayN第三方审核结果,参见:基于第三方审核结果的消息推送

 输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
taskIdstring任务编号
 invalidUserJSON Object非法用户信息,包括status和userid,userid为接入方传的regid或者alias,status有三种情况:1.userId不存在;2.卸载或者关闭了通知;3.七天不在线;4.非测试用户

3.广播

3.1保存群推消息公共体接口

接口说明

同一条信息覆盖多个用户。此接口需与批量推送用户接口3.2配套使用,批量推送接口用此接口生成taskId批量发送用户。

使用场景:活动、系统升级提醒等。

限制:默认根据客户端SDK订阅数自动配置。

访问方式

URL编码方式协议methodContent-Type
/message/saveListPayloadUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST  -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’    -d   ‘${your_request_body}’   https://api-push.vivo.com.cn/message/saveListPayloadRequest body e.g.:{        “appId”:10004,        “title”:”标题1″,        “content”:”内容1″,        “notifyType”:1,        “timeToLive”:86400,        “skipType”:2,          “skipContent”:”http://www.vivo.com”,        “networkType”:”1″,        “clientCustomMap”:{              “key1″:”vlaue1”,              “key2″:”vlaue2”},          “requestId”:”25509283-3767-4b9e-83fe-b6e55ac6b123″}Response body e.g.:http status 200:业务成功:{         “result”:   0,         “desc”:   “请求成功”,”taskId”:   “342982232646905856”}业务异常:{         “result”:   xxx,”desc”: “xxx不合法”}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
notifyTypeintY通知类型 1:无,2:响铃,3:振动,4:响铃和振动
titlestringY通知标题(用于通知栏消息) 最大20个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过40个英文字符)
contentstringY通知内容(用于通知栏消息) 最大50个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过100个英文字符)
timeToLiveintN消息保留时长 单位:秒,取值至少900秒,最长7天。当值为空时,默认一天。
skipTypeintY点击跳转类型 1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面
skipContentstringN跳转内容 跳转类型为2时,跳转内容最大1000个字符,跳转类型为3或4时,跳转内容最大1024个字符,skipType传3需要在onNotificationMessageClicked回调函数中自己写处理逻辑。关于skipContent的内容可以参考【vivo推送常见问题汇总】 pushSDK版本号:480以上,不在支持skipType=3,自定义跳转统一使用skipType=4,详见【vivo推送常见问题汇总】中API接入问题的Q11中的intent uri示例。
networkTypeintN网络方式 -1:不限,1:wifi下发送,不填默认为-1
classificationintN消息类型 0:运营类消息,1:系统类消息。不填默认为0
clientCustomMapJSON ObjectN客户端自定义键值对 自定义key和Value键值对个数不能超过10个,且长度不能超过1024字符, key和Value键值对总长度不能超过1024字符。app可以按照客户端SDK接入文档获取该键值对。
requestIdstringY用户请求唯一标识 最大64字符
auditReviewJSON ArrayN第三方审核结果,参见:基于第三方审核结果的消息推送

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
taskIdstring任务编号

3.2批量推送用户接口

接口说明

批量发送用户。此接口与群推消息接口3.1配套使用,首先通过群推消息接口3.1返回taskId,然后此接口带上taskId批量发送用户,可以根据regIds或者aliases分批调用。每次调用时,regIds或者aliases的个数必须大于等于2,小于等于1000。

限制:根据客户端SDK订阅数自动配置,可发送的用户总量可以在开发者后台查看。

访问方式

URL编码方式协议methodContent-Type
/message/pushToListUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST -H   ‘authToken:${your_auth_token}’ -H       ‘Content-Type:application/json’  -d   ‘${your_request_body}’   https://api-push.vivo.com.cn/message/pushToListRequest body e.g.:{      “appId”:10004,      “regIds”:[              “12345678901234567890121”,              “12345678901234567890122”        ],          “taskId”:”342982232646905856″,          “requestId”:”25509283-3767-4b9e-83fe-b6e55ac6b123″}Response body e.g.:http status 200:业务成功:{    “requestId”: “25509283-3767-4b9e-83fe-b6e55ac6b123”,    “result”: 0,    “desc”: “请求成功”,    “invalidUsers”: [{        “status”: 1,        “userid”: “12345678901234567890121”    }]}
业务异常:{         “result”:   xxx,         “desc”:   “xxx不合法”}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
regIdsstring[]NregId列表 个数大于等于2,小于等于1000(regIds,aliases   两者需一个不为空,两个不为空,取regIds)
aliasesstring[]N别名列表个数大于等于2,小于等于1000,长度不超过40字符(regIds,aliases 两者需一个不为空,两个不为空,取regIds)
taskIdstringY公共消息任务号,取saveListPayload返回的taskId
requestIdstringY请求唯一标识,最大64字符
pushModeintN推送模式 0:正式推送;1:测试推送,不填默认为0(测试推送,只能给web界面录入的测试用户推送;审核中应用,只能用测试推送)

输出参数:

  属性名字  类型  描述
  result  int  接口调用是否成功的状态码 0成功,非0失败
  desc  string  文字描述接口调用情况
  invalidUser  JSON Object  非法用户信息,包括status和userid,userid为接入方传的regid或者alias,status有三种情况:1.userId不存在;2.卸载或者关闭了通知;3.七天不在线;4.非测试用户

3.3全量发送接口

接口说明

向所有设备推送某条消息。

使用场景:活动、系统升级提醒等。

限制:默认是每个app每日可发送一条。

访问方式

URL编码方式协议methodContent-Type
/message/allUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST -H     ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’     https://api-push.vivo.com.cn/message/allRequest body e.g.:{        “appId”:10004,        “notifyType”:1,        “title”:”标题1″,        “content”:”内容1″,        “timeToLive”:86400,        “skipType”:2,          “skipContent”:”http://www.vivo.com”,        “networkType”:”1″,      “clientCustomMap”:{              “key1″:”vlaue1”,              “key2″:”vlaue2”      },          “requestId”:”25509283-3767-4b9e-83fe-b6e55ac6b123″}Response body e.g.:http status 200:业务成功:{         “result”:   0,         “desc”:   “请求成功”,”taskId”:     “12139732”}业务异常:{         “result”:   xxx,”desc”: “xxx不合法”}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
notifyTypeintY通知类型 1:无,2:响铃,3:振动,4:响铃和振动
titlestringY通知标题(用于通知栏消息) 最大20个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过40个英文字符)
contentstringY通知内容(用于通知栏消息) 最大50个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过100个英文字符)
timeToLiveintN消息保留时长 单位:秒,取值至少900秒,最长7天。当值为空时,默认一天
skipTypeintY点击跳转类型 1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面
skipContentstringN跳转内容 跳转类型为2时,跳转内容最大1000个字符,跳转类型为3或4时,跳转内容最大1024个字符,skipType传3需要在onNotificationMessageClicked回调函数中自己写处理逻辑。关于skipContent的内容可以参考【vivo推送常见问题汇总】 pushSDK版本号:480以上,不在支持skipType=3,自定义跳转统一使用skipType=4,详见【vivo推送常见问题汇总】中API接入问题的Q11中的intent uri示例。
networkTypeintN网络方式 -1:不限,1:wifi下发送,不填默认为-1
classificationintN消息类型 0:运营类消息,1:系统类消息。不填默认为0
clientCustomMapJSON ObjectN客户端自定义键值对 自定义key和Value键值对个数不能超过10个,且长度不能超过1024字符, key和Value键值对总长度不能超过1024字符。app可以按照客户端SDK接入文档获取该键值对
requestIdstringY用户请求唯一标识 最大64字符
auditReviewJSON ArrayN第三方审核结果,参见:基于第三方审核结果的消息推送

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
taskIdstring任务编号

3.4获取消息推送的统计值接口

接口说明

获取taskId对应的统计信息,taskIds最多100个。 注意:查询的消息类型 【群推送消息/列表推消息】

访问方式

URL编码方式协议methodContent-Type
/report/getStatisticsUtf-8httpsGETapplication/json
Curl e.g.:   curl -X GET  -H   ‘authToken:${your_auth_token}’ -H       ‘Content-Type:application/json’     https://api-push.vivo.com.cn/report/getStatistics?appId=10004&taskIds=123138209,23498102,3240910940,109283018Request body e.g.:Response body e.g.:http status 200:业务成功:{        “result”:0,        “desc”:”请求成功”,      “statistics”:[    {          “taskId”:   “298475091219”,          “target”: 10000,          “valid”: 9500,          “send”: 9000,          “receive”: 9000,          “display”: 8000,          “click”: 200,          “targetInvalid”:   200,          “targetUnSub”:   200,          “targetInActive”: 100,          “covered”: 200,          “controlled”:   200,          “targetOffline”:   100    },    {          “taskId”:   “298475091220”,          “target”: 10000,          “valid”: 9500,          “send”: 9000,          “receive”: 9000,          “display”: 8000,          “click”: 200,          “targetInvalid”:   200,          “targetUnSub”:   200,            “targetInActive”: 100,          “covered”: 200,          “controlled”:   200,          “targetOffline”:   100    }]}业务异常:{         “result”:   xxx,         “desc”:   “xxx不合法”}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
taskIdsstringY查询的任务列表taskIds 用,分隔开 e.g.:   “234567,234568”

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
taskIdstring任务号
targetlong目标总数
targetInvalidlong不存在的用户总数,根据id找不到任何信息
targetUnSublong解订阅的用户总数,用户已卸载或者客户端主动调用turnOffPush()解订阅
targetInActivelong14天不在网的用户数,手机14天没有联网,信息被后台删除
validlong有效目标总数
coveredlong被覆盖的用户消息总数,群推、全推、标签推消息属于营销消息,会被覆盖
controlledlong被管控的用户消息总数,例如接收的群推消息总数一天超过5条
targetOfflinelong推送后不在线的用户数,截止到当前统计时间为止,没有联网的用户数,呈下降趋势
sendlong下发总数
receivelong到达总数
displaylong展示总数
clicklong点击总数

4.回执

4.1消息送达回执

接口说明

vivo推送服务器将已送达或和对应设备的alias或者regId通过调用第三方设置的回调,http接口传给开发者服务器。仅单播支持回执(每次调用后,推送服务器会清空这些数据。)

使用:

① 发送消息接口设置扩展参数extra(详见目录:一.公共——5.高级特性 extra), 包含callback、callback.param。

② vivo推送服务器调用第三方设置的callback url接口。 

③ 字段ackType  【达回执类型】目前只有到达回执ackType=0

访问方式

URL编码方式协议methodContent-Type
第三方设置的callback url(详见:高级特性 extra)Utf-8https/httpPOSTapplication/json
Curl e.g.:   curl -X POST -H   ‘Content-Type:application/json’ -d     ‘${your_request_body}’   https://callbackurlRequest body e.g.:{      “taskId1”:{              “param”:”param1″,              “targets”:”alias1,alias2,alias3″,              “ackTime”:1612776166257    },      “taskId2”:{              “param”:”param2″,              “targets”:”regId1,regId2,regId3″,              “ackTime”:1612776166258    }}Response body e.g.:http status 200:http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
taskIdstringY任务编号
paramstringY开发者上传的自定义参数值
targetsstringY一批alias或者regId列表,之间是用逗号分割
ackTimelongN回执到达时间,毫秒时间戳

 回执流程

设备在线:

回执流程.png

设备不在线:

回执流程设备不在线.png

5.标签管理

5.1 新增标签接口

接口说明

为应用方增加标签,用于后续标签推送。

访问方式

URL编码方式协议methodContent-Type
/tag/addUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d     ‘${your_request_body}’ https://host:port/tag/addRequest   body e.g.:{          “appId”:10004,          “name”:   “shenzhen”,          “desc”:”深圳用户标签”,       “group”:”city”}Response body   e.g.:http status   200:{         “result”: 0,         “desc”: “成功”,}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签名称
descstringN标签描述
groupstringN标签分类名

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

5.2 更新单个标签接口

接口说明

更新一个标签的信息,更新标签名字、描述、所属分类。

访问方式

URL编码方式协议methodContent-Type
/tag/updateUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/tag/updateRequest   body e.g.:{           “appId”:10004,           “oldName”:”shenzhen”,           “newName”:”shenzhenbaoan”}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “成功”}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
oldNamestringY旧标签名称
newNamestringY新标签名称
descstringN更新标签描述
groupstringN更新标签所属分类

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

5.3 给标签添加用户设备接口

接口说明

给标签添加用户设备信息,单次不超过1000个设备。

访问方式

URL编码方式协议methodContent-Type
/tag/addMembersUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H ‘Content-Type:application/json’      -d ‘${your_request_body}’   https://host:port/tag/addMembersRequest   body e.g.:{         “appId”:10004,         “name”:”shenzhen”,         “type”:1,             “ids”:[“15549635570031000000216″,”15549635980031000001086”]}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “success”,    “data”: [          {                “status”: 1,                “userid”:   “00000000000000000000004”          },          {                “status”: 1,                “userid”:   “00000000000000000000005”          }    ]}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签名字
typeintY用户类型:1是regId   ,2是别名
idsJSON ArrayY用户id

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
dataJSON Arrayuserid是非法用户id,status有3种状态:1是用户不存在,2是用户push开关关闭,3是用户14天未联网。

5.4 移除标签中的用户设备接口

接口说明

移除标签中的用户设备信息,单次不超过1000个设备。

访问方式

URL编码方式协议methodContent-Type
/tag/removeMembersUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/tag/removeMembersRequest   body e.g.:{         “appId”:10004,         “name”:”shenzhen”,         “type”:1,         “ids”:[“15554239157791000000009″,”15554239157791000000008”]}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “success”,    “data”: [          {                “status”: 1,                “userid”:   “15554239157791000000008”          },          {                “status”: 1,                “userid”:   “15554239157791000000009”          }    ]}业务异常:{         “result”: xxx,         “desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签名字
typeintY用户类型:1是regId   ,2是别名
idsJSON ArrayY用户id

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
dataJSON Arrayuserid是非法用户id,status有3种状态:1是用户不存在,2是用户push开关关闭,3是用户14天未联网。

6.标签分类管理

6.1 新增标签分类接口

接口说明

为应用方增加标签分类,用于后续标签分类管理。

访问方式

URL编码方式协议methodContent-Type
/tagGroup/addUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d   ‘${your_request_body}’ https://host:port/tagGroup/addRequest body e.g.:{    “appId”:10004,    “name”:   “guangzhou”,     “type”:”city”}Response body   e.g.:http status   200:{         “result”: 0,         “desc”: “成功”,}业务异常:{         “result”: xxx,         “desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签分类名称
typeintY标签分类类型:1是普通标签,2是互斥标签
descstringN标签分类描述

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

6.2 更新单个标签分类接口

接口说明

更新一个标签分类的信息,包括标签分类名称和描述。

访问方式

URL编码方式协议methodContent-Type
/tagGroup/updateUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/tagGroup/updateRequest   body e.g.:{      “appId”:10004,      “oldName”: “city”,      “newName”:   “province”,      “desc”:   “这是更新后的描述”}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “成功”}业务异常:{         “result”: xxx,         “desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
oldNamestringY旧标签分类名称
newNamestringY新标签分类名称
descstringN新标签分类的描述

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

6.3 添加标签到标签分类接口

接口说明

把标签添加进标签分类里面,一次可添加一个或者多个标签,最多不超过100个。

访问方式

URL编码方式协议methodContent-Type
/tagGroup/addToGroupUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/tagGroup/addToGroupRequest   body e.g.:{         “appId”:10004,         “name”:”city”,         “tagList”:[“shenzhen”,”guangzhou”]}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “成功”}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签分类名称
tagListJSON ArrayY一个或多个标签

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

7.标签组合管理

7.1 新增标签组合接口

接口说明

为应用方增加标签组合。 一个标签组合由多个标签组成。

访问方式

URL编码方式协议methodContent-Type
/tagSegment/addUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d     ‘${your_request_body}’ https://host:port/tagSegment/addRequest   body e.g.:{    “appId”:10004,    “name”:   “segment1”,          “expression”:{                   “notTags”:[“shenzhen”],                  “andTags”:[],                  “orTags”:[]          }}Response body   e.g.:http status   200:{         “result”: 0,         “desc”: “成功”,}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
namestringY标签组合名称
expressionJSON ObjectY标签组合表达式:包含三种JSON数组:notTags表示非操作、andTags表示与操作,orTags表示或操作,例如:”tagExpression”:{                 “notTags”:[“琴”,”棋”,”书”,”画”],                  “andTags”:[“深圳”,”广东”],                  “orTags”:[“本科生”,”研究生”]          }可以表示为,不会琴、棋、书、画的广东省深圳市的本科生或研究生的所有用户。当然这些标签需要先在平台或者接口创建后再使用。

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

7.2 更新单个标签组合接口

接口说明

更新一个标签组合的信息

访问方式

URL编码方式协议methodContent-Type
/tagSegment/updateUtf-8httpsPOSTapplication/json
Curl e.g.:   curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/tagSegment/updateRequest   body e.g.:{            “appId”:10004,           “oldName”:”segment1″,           “newName”:”segment2″,”expression”:   {                    “orTags”: [“shenzhen”],                    “andTags”:     [],                    “notTags”: []    }}Response body   e.g.:http status   200:{    “result”:   0,    “desc”:   “成功”}业务异常:{         “result”: xxx,”desc”:     “xxx”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
oldNamestringY旧标签组合名称
newNamestringY新标签组合名称
expressionJSON ObjectN新标签组合表达式:包含三种JSON数组:notTags表示非操作、andTags表示与操作,orTags表示或操作,例如:”tagExpression”:{                 “notTags”:[“琴”,”棋”,”书”,”画”],                  “andTags”:[“深圳”,”广东”],                  “orTags”:[“本科生”,”研究生”]          }可以表示为,不会琴、棋、书、画的广东省深圳市的本科生或研究生的所有用户。当然这些标签需要先在平台或者接口创建后再使用。

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况

8.标签推

8.1标签推接口

接口说明

接入方携带消息内容、标签信息进行通知消息推送。

  标签个数的限制:20个

访问方式

URL编码方式协议methodContent-Type
/message/tagPushUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST   -H   ‘authToken:${your_auth_token}’ -H     ‘Content-Type:application/json’  -d ‘${your_request_body}’       https://host:port/message/tagPushRequest   body e.g.:{          “appId”:10004,          “tagExpression”:{                   “notTags”:[“tag1″,”       tag2″,”tag3″,” tag4″],                  “andTags”:[“tag5″,”   tag6″],                  “orTags”:[“tag7″,”tag8”]          },  “segmentName”:   “组合名”,      “notifyType”: 4,    “title”:   “123”,      “content”: “456”,      “timeToLive”: 86400,      “skipType”: 1,      “skipContent”:   “assda”,      “networkType”: -1,      “requestId” :       “25509283-3767-4b9e-83fe-b6e55ac6b123”}Response body   e.g.:http status   200:业务成功:{    “result”:   0,    “desc”:   “请求成功”,    “taskId”:     “2199912448”}业务异常:{         “result”: xxx,”desc”:   “xxx不合法”}http status   500:Internet   server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
tagExpressionJSON ObjectY标签表达式。包含三种JSON数组:notTags表示非操作、andTags表示与操作,orTags表示或操作,例如:”tagExpression”:{                 “notTags”:[“琴”,”棋”,”书”,”画”],                  “andTags”:[“深圳”,”广东”],                  “orTags”:[“本科生”,”研究生”]          }可以表示为,不会琴、棋、书、画的广东省深圳市的本科生或研究生的所有用户。当然这些标签需要先在平台或者接口创建后再使用。
segmentNamestringN之前创建好的组合名,如果传递组合名,默认用组合名推送,否则如果传递tagExpression,按照标签表达式推送
notifyTypeintY通知类型 1:无,2:响铃,3:振动,4:响铃和振动
titlestringY通知标题(用于通知栏消息) 最大20个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过40个英文字符)
contentstringY通知内容(用于通知栏消息) 最大50个汉字(一个汉字等于两个英文字符,一个表情占一个字符,即最大不超过100个英文字符)
timeToLiveintN消息保留时长 单位:秒,取值至少60秒,最长7天。当值为空时,默认一天
skipTypeintY点击跳转类型 1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面
skipContentstringN跳转内容 跳转类型为2时,跳转内容最大1000个字符,跳转类型为3或4时,跳转内容最大1024个字符,skipType传3需要在onNotificationMessageClicked回调函数中自己写处理逻辑。pushSDK版本号:480以上,不在支持skipType=3,自定义跳转统一使用skipType=4,详见【vivo推送常见问题汇总】中API接入问题的Q11中的intent uri示例。
networkTypeintN网络方式 -1:不限,1:wifi下发送,不填默认为-1
classificationintN消息类型 0:运营类消息,1:系统类消息。不填默认为0
clientCustomMapJSON ObjectN客户端自定义键值对 自定义key和Value键值对个数不能超过10个,且长度不能超过1024字符, key和Value键值对总长度不能超过1024字符。
requestIdstringY用户请求唯一标识 最大64字符
auditReviewJSON ArrayN第三方审核结果,参见:基于第三方审核结果的消息推送

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
taskIdstring任务编号

9.消息状态查询

9.1消息状态查询

接口说明

由于目前只返回审计相关信息,单推没有同步返回消息审计状态,其他类型的推送有同步返回。所以可通过调用此接口传递消息id,查询消息的状态。目前有调用频率限制,单个app 1次/s, 建议一批类似的消息体查询一次。

使用:

① 发送消息后查询消息的状态(延时在一分钟内)。

②‘审计通过’或 ‘审计不通过的状态还未入库’,返回 【消息状态未知】,审计不通过状态已入库,返回【消息包含敏感词】

访问方式

URL编码方式协议methodContent-Type
https://api-push.vivo.com.cn/search/msgStatusUtf-8https/httpGETapplication/json
Curl e.g.:   curl -X GET -H   ‘authToken:${your_auth_token}’ -H   ‘Content-Type:application/json’   -d     ‘${your_request_body}’ https://api-push.vivo.com.cn/search/msgStatus?appId=10004&taskIds=taskId1,taskId2Request body e.g.:{    “result”:   0,    “desc”:   “success”,    “data”: [          {                “taskId”: taskId1,                “desc”: “消息包含敏感词”          },          {                ” taskId “: taskId2,                “desc”: “消息状态未知”          }    ]}Response body e.g.:http status 200:http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
taskIdsstringY由多个taskId组成的字符串,多个taskId之间用逗号分隔,一次最多查询100个

10.查询失效id

10.1失效id查询

接口说明

由于用户卸载、客户端主动调用turnOffPush()解订阅、设备14天不联网还有一部分历史原因,可能造成推送的id无效。开发者可以根据推送时返回的InvalidUser对失效id做标记或者清除处理,或者单独查询本接口,将无效的id过滤,避免占用推送额度。

使用:

① 传递要查询的id,以及id的类型,后台根据保存的id,返回无效的id。

② 建议在推送低峰期,例如晚上或者凌晨调用,将保存的id一批批查询,避免影响应用的推送性能。勿高频调用。

访问方式

URL编码方式协议methodContent-Type
/invalidUser/checkUtf-8https/httpPOSTapplication/json
Curl e.g.:   curl -X GET -H   ‘authToken:${your_auth_token}’ -H   ‘Content-Type:application/json’   -d     ‘${your_request_body}’ https://api-push.vivo.com.cn/invalidUser/check    Request body e.g.:{      “appId”:10004,      “userType”: 1,      “userIds”: [            “15547801220021000000000”,            “15547801220021000000001”    ]}Response body e.g.:http status 200:{      “invalidUsers”: [            “15547801220021000000000”,            “15547801220021000000001”    ]}http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
userIdsstring[]Y用户id数组 ,单次最大100个
userTypeintYuserId的类型1:regId,2:alias

11.消息回收

11.1 消息回收接口

接口说明

此接口用于回收已发送给用户的消息。通过传递推送的消息id和具体的用户id、用户类型进行消息回收,消息回收接口调用量和调用速度会占用推送量级和推送速度。

限制:由我司运营人员配置。

消息撤回功能是平台提供给开发者紧急处理运营事故的工具,切勿日常频繁使用,以免对用户体验不当影响。

对于推送内容、应用行为等存在违规的,平台将按《vivo推送运营规则》进行相应处罚。

访问方式

URL编码方式协议methodContent-Type
/message/recycleUtf-8httpsPOSTapplication/json
Curl e.g.:curl -X POST -H ‘   authToken:${your_auth_token}’ -H ‘Content-Type:application/json’  -d ‘${your_request_body}’   https://host:port/message/recycleRequest body e.g.:{         “appId”:10004,         “taskId”:656079923690082304,         “userIds”:[“15762048080021000000007″,”15762048080021000000008″,”15762048080021000000009”],         “userType”:1}Response body e.g.:http status 200:业务成功:{         “result”:   0,         “desc”:   “请求成功”,”invalidUsers”: [         {            “status”: 1,            “userid”:   “15762048080021000000008”         },         {            “status”: 1,            “userid”:   “15762048080021000000008”         }      ]}业务异常:{         “result”:   xxx,”desc”: “xxx不合法”} http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送
taskIdstringY单播或广播返回的taskId
userIdsstring[]YuserId列表。个数大于等于1小于等于100
userTypeintY用户类型。1:regId;2:alias

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
invalidUsersJSON Array非法用户信息,包括status和userid,userid为接入方传的regid或者alias,status有三种情况:1.userId不存在 2.卸载或者关闭了通知 3.七天不在线

12.应用配置信息查询 

12.1 应用配置信息查询接口

接口说明

此接口用于查询应用配置信息,系统消息总量、运营消息总量、群推消息体总量、配置速度等信息、SDK订阅数。此接口限制了调用频率,请勿频繁调用。

访问方式

URL编码方式协议methodContent-Type
/report/getAppConfigUtf-8httpsGETapplication/json
Curl e.g.:curl -X GET -H ‘authToken:${your_auth_token}’   -H ‘Content-Type:application/json’  -d ‘${your_request_body}’     https://host:port/report/getAppConfig?appId=10004Response body e.g.:http status 200:业务成功:{      “result”: 0,      “desc”: “请求成功”,      “data”: {          “sysMsgCount”: 10000,          “marketMsgCount”: 100000,          “sdkSubCount”: 124,          “speed”: 3000,          “groupMsgBodyCount”: 12000,       “remainSysMsgCount”:1200,       “remainMarketMsgCount”:1300
      }}业务异常:{           “result”:   xxx,”desc”:   “xxx不合法”} http status 500:Internet server error!

接口定义

输入参数:

属性名字类型是否必填Y/N描述
appIdintY用户申请推送业务时生成的appId,用于与获取authToken时传递的appId校验,一致才可以推送

输出参数:

属性名字类型描述
resultint接口调用是否成功的状态码 0成功,非0失败
descstring文字描述接口调用情况
datajson object详细内容

data:

属性名字类型描述
sysMsgCountlong系统消息配置量
marketMsgCountlong运营消息配置量
sdkSubCountlongsdk订阅数
speedlong速度配置
groupMsgBodyCountlong群推消息体配置量
remainSysMsgCountlong剩余可发送系统消息量级
remainMarketMsgCountlong剩余可发送运营消息量级


全局公共返回码详解

resultdesc
0请求成功
10000权限认证失败
10040资源已达上限,稍后重试
10044该接口未开放测试模式
10045应用审核中不可发送正式消息
10050alias和regId 不能都为空
10051暂不支持该消息类型
10054notifyType 不合法
10055title 不能为空
10056title 长度不能超过40个字符
10057content 不能为空
10058content 长度不能超过100个字符
10059timeToLive 不合法
10060skipType 不合法
10061skipType = 2, skipContent 不能为空
10062skipType = 2, skipContent 不能超过1000个字符
10063skipType = 3, skipContent 不能为空
10064skipType = 3, skipContent 不能超过1024个字符
10065networkType 不合法
10066自定义key和Value键值对个数不能超过10个
10067自定义key和value键值对不合法
10068skipType = 4, skipContent 不能为空
10069skipType = 4, skipContent 不能超过1024个字符
10070运营消息发送量总量超出限制
10071超出发送时间允许范围
10072推送速度过快,请稍后再试
10073系统消息发送量总量超出限制。系统消息量级申请,请参见:系统消息量级说明
10082系统消息未开通
10084查询速度过快,请稍后再试
10085title 或 content 不能为纯表情
10093获取鉴权码速度过快
10094鉴权码与请求体对应的appId不一致
10101消息内容审核不通过
10102服务器端未知异常
10103推送内容含敏感信息
10104请发送正式信息,请检查title、content,不要发送测试内容
10105推必安内容审核不通过
10106auditReview参数错误
10110请配置商业化消息发送频率
10111今天已发送商业化消息
10112商业化消息发送超出周次数限制
10150aliases 和 regIds 不能都为空
10151taskId 不能为空
10152taskId 不合法
10153regIds 个数不在指定范围[2-1000]
10154aliases 个数不在指定范围[2-1000]
10155消息不存在或已过期
10200appId 不能为空
10201appKey 不能为空
10202appKey 不合法
10203timestamp 不能为空
10204sign 不能为空
10205appId 不存在
10206sign 不正确
10207timestamp 不合法
10250认证接口超过调用次数限制
10252批量发送创建消息体超出限制
10253批量发送regId或alais超过总量限制
10254全量发送超过次数限制
10301alias 长度不能超过40个字符
10302regId 不合法, regId为无效的regId, regId可能已经失效
10304extra 包含不支持的key
10305extra callback长度不能超过128个字符
10306extra callback.param长度不能超过64个字符
10307alias 不合法
10352requestId 不能为空
10353requestId 长度不能超过64个字符
10354Internet server error
10471taskIds 数量不能超过100个
10472taskIds 格式错误
10473taskIds 为空
10600name参数不合法,只能使用中文、英文字母、阿拉伯数字和下划线命名,且不能以数字开头,且长度不超过50字符
10601标签名字不能为空
10602标签描述不能超过300字符
10603oldName参数不能为空
10604newName参数不能为空
10605oldName参数不合法,只能使用中文、英文字母、阿拉伯数字和下划线命名, 且不能以数字开头,且长度不超过50字符
10606newName参数不合法,只能使用中文、英文字母、阿拉伯数字和下划线命名, 且不能以数字开头,且长度不超过50字符
10607id参数不能为空
10608type参数不能为空
10609ids参数不能为空
10610标签名已经存在
10611标签分类名已经存在
10612标签组合名已经存在
10613group参数不合法,只能使用中文、英文字母、阿拉伯数字和下划线命名, 且不能以数字开头,且长度不超过50字符
10614ids数量不能超过1000
10615tag数量不能超过100
10616type参数不合法
10700userids不能为空
10701userid个数超过限制
10702optionType错误
10703register接口调用超频,稍后再试
10704register调用过快,稍后再试
10705app不支持
10706userType错误
10800registration_tokens个数不在指定范围
10801notification不能为空
10802original_source_name不能为空
10803original_source_name长度非法
10804original_source_ip不能为空
10806click_action非法
10807url长度超过限制
10808intent长度超过限制
10255全量推送接口未开放
10901dyeKey长度不能超过限制
10900dye设置个数超过限制
10811超出限制
10810clientId非法
10809click_action不能为空
10805notification_channel长度超过限制
10617系统msgId生成异常
10500订阅标签超出限制
10501标签长度超出限制
10502标签已经删除完成
10503标签不能为空
10504订阅标签超出限制
10505标签长度超出限制
10506标签已经删除完成
10507标签不能为空
10508标签个数超出限制
10550标签操作类型无效
10551标签列表不能为空
10552标签个数超过限制
10553标签组合名不能为空
10309audienceId不合法,alias长度不超过40

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12123/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年11月23日 下午3:01
下一篇 2022年11月23日 下午4:00

相关推荐