分发文档
基于第三方审核结果的消息推送更新时间: 2024-10-18 20:56:00
MiPush禁止推送包含敏感词的消息,建议App的运营人员在推送消息的时候基于三方平台(推必安)的审核结果来进行消息推送。即在推送消息给Push服务器时,需附带推必安对消息体内容审核后的结果,当Push服务器检测到审核结果不通过时,会对消息进行拦截,并返回结果给App运营人员。
说明:
推送消息内容安全公共服务平台(推必安)提供高效过滤色情、广告、涉政、暴恐、违法、低俗等多类垃圾文字及关键词的检测能力,推必安接入方式详见官网:https://tuibian.mobileservice.cn/。
一、基于推必安审核的消息下发流程

流程说明:
- 开发者推送消息前需要调用小米推送消息鉴权接口(https://api.xmpush.xiaomi.com/v1/auth),获取用于后续推送的access_token。
- 登录推必安官网(https://tuibian.mobileservice.cn/)并申请服务,通过推必安服务申请后,可获取相应接口文档、调用凭证,或者验签SDK资料包和证书等。调用推必安请求地址(https://push.tuibianchina.com/v1/token)建立请求。详细请求方式可参考推必安内容审核系统开发者手册。
- 开发者将需要推送的标题(title)、内容(content)拼接成字符串,拼接方式见注1,调用推必安文本审核接口(https://push.tuibianchina.com/v1/audit),获取审核结果。详细请求方式可参考推必安内容审核系统开发者手册。
- 将步骤3的审核结果(详见注2),与发送消息内容一起携带,调用消息推送接口(https://api.xmpush.xiaomi.com/v1/L1),进行消息推送。
注1:为保证后续消息的正常推送(调用https://api.xmpush.xiaomi.com/v1/L1接口)以及文本审核,在请求推必安审核接口时传入的content字段需要使用后续消息推送的标题、内容进行拼装,具体格式为"标题#内容"。
注2:若使用信息审核功能,需将信息审核接口的全部响应体内容在调用https://api.xmpush.xiaomi.com /v1/L1接口进行消息推送时通过auditResponse字段作为入参传递。
二、接口说明
推送消息鉴权接口
接口用途:用于应用推送用户身份鉴定,通过后可获得access_token用于后续请求身份校验。
接口地址:
https://api.xmpush.xiaomi.com/v1/auth
请求方式:POST
Http Header:Content-Type:application/json
接口入参:
属性 | 类型 | 是否必传 | 说明 |
grant_type | string | 是 | 依据Oauth 2.0 规范,本值必须为“client_credentials”。 |
app_id | string | 是 | 用户申请推送业务时生成的AppID(最长 24 字节)。 |
timestamp | string | 是 | 时间戳(单位ms,Unix标准,从1970 年1月1日开始)。 |
app_secret | string | 是 | 用户申请推送业务时获得对应AppID的秘钥(最长128字节)。 |
说明:
app_id及app_secret生成可参考《推送服务启用指南》。
入参body示例:
{
"grant_type":"client_credentials",//固定值
"app_id":"1000000",//应用Id
"timestamp":"1577262811",时间戳
"app_secret":"xxxxx" //创建应用时生成
}
响应结果:
属性 | 类型 | 说明 |
result | string | 鉴权结果 |
desc | string | 结果描述 |
access_token | string | 用于后续进行消息推送鉴权时的令牌,当鉴权成功时才会有该字段。 |
expires_in | int | access_token的有效期,以秒为单位,当鉴权成功时才会有该字段。 |
其中,result字段目前可能的返回值为:
result | 对应的desc |
-1 | 系统未知 |
0 | 成功 |
1 | 无效的app_id |
2 | 无效的app_secret |
>100 | 小米推送预留 |
成功响应示例:
{
"result": 0,
"access_token": "xxxxxx",
"expires_in": 604800,
"desc": "成功"
}
失败响应示例:
{
"result": 1,
"desc": "无效的app_id"
}
消息推送接口
接口用途:向单个或多个设备推送消息。
接口地址:
https://api.xmpush.xiaomi.com/v1/L1
请求方式:POST
Http Header:Content-Type:application/json
Authorization:申请的access_token
接口入参:
属性 | 类型 | 父项目 | 是否必传 | 说明 |
registration_tokens | Array | - | 是 | 多个registration_token列表(即regId),建议最大值不超过 100。 |
notification | Object | - | 是 | 通知栏消息结构体 |
ttl | string | - | 是 | 消息保留时长(单位:秒,最长不超过10 天) |
option | JSONObject | - | 否 | 消息扩展信息,key-value,可参考《服务器API地址以及参数》中以“extra.”前缀的参数,可支持个性化功能。 |
original_source_nam e | string | - | 是 | 推送消息的来源,品牌名称(英文或拼音)(不超过128字节)。 |
original_source_ip | string | - | 是 | 如果消息由第三方代发,消息中要挟带消息原始来源的ip地址(举例:CP 1为原始推送消息发出方,将消息发送给了CP 2,由CP 2代为发送至厂商,则CP 2发出的消息中需要增加CP 1的IP地址。) |
notification_channel | string | - | 否 | 为满足安卓O/P的特性,增加通知通道(channel)的特性 (不超过64字节),channel使用可参考《服务器API地址以及参数》中的“通知类别(Channel)”一节。 |
auditResponse | Object | - | 否 | 推必安信息审核api响应内容,详见推必安官方文档:https://tuibian.mobileservice.cn/ 。 |
title | string | notifaicati on | 是 | 通知标题(不超过128字节)。 |
content | string | notifaicati on | 是 | 通知内容(不超过256字节)。 |
click_action | Object | notifaicati on | 否 | 点击通知栏后自定义行为。 |
url | string | click_action | 否 | 点击通知栏消息,打开指定的URL地址。 |
intent | string | click_action | 否 | 点击通知栏消息,用户收到通知栏消息后点击通知栏消息打开应用定义的这个Intent页面。 |
入参body示例:
{
"registration_tokens":[
"xxxxxxxx"
],
"notification":{
"title":"title",
"content":"desc",
"click_action":{
"url":"xxxxx",
"intent":"xxxxx"
}
},
"original_source_name":"xiaomi",
"original_source_ip":"x.x.x.x",
"ttl":"3600",
"option":{
"extra.callback":"callbackUrl"
}
}
响应结果:
属性 | 类型 | 说明 |
result | string | 鉴权结果 |
desc | string | 结果描述 |
message_id | string | 任务编号,可用于后续查看消息是否送达、问题排查等。 |
响应httpCode说明:
result | 对应的desc |
200 | 请求成功 |
405 | 授权失败 |
500 | 系统内部错误 |
result字段目前可能的返回值为:
result | 对应的desc |
-1 | 系统未知 |
0 | 成功 |
>100 | 小米推送错误码,可参考《服务端错误码参考》。 |
成功响应示例:
{
"result": 0,
"messageId": "sdm01063577265502867XS",
"desc": "成功"
}
失败响应示例:
{
"result": -1,
"desc": "系统未知"
}
上一篇:
下一篇:
文档内容是否有帮助?