搜索
分发文档
应用分发
游戏分发
电视应用分发
快应用分发
小游戏分发
服务分发
内容分发
分发文档/应用分发/应用服务/推送服务/服务器API地址以及参数
服务器API地址以及参数更新时间: 2024-10-21 14:56:00

如果开发者期望开发其它平台的ServerSDK,下面提供的API地址和参数也许会有帮助。

一、推送单条消息

正式环境

V2版接口:

向某个regid或一组regid列表推送某条消息
https://api.xmpush.xiaomi.com/v2/message/regid
向某个alias或一组alias列表推送某条消息
https://api.xmpush.xiaomi.com/v2/message/alias
向某个account或一组account列表推送某条消息
https://api.xmpush.xiaomi.com/v2/message/user_account
向某个topic推送某条消息
https://api.xmpush.xiaomi.com/v2/message/topic
向多个topic推送单条消息
https://api.xmpush.xiaomi.com/v2/message/multi_topic
向所有设备推送某条消息
https://api.xmpush.xiaomi.com/v2/message/all

V3版接口(兼容V2版接口并支持多包名):

向某个regid或一组regid列表推送某条消息(这些regId可以属于不同的包名)
https://api.xmpush.xiaomi.com/v3/message/regid
向某个alias或一组alias列表推送某条消息(这些alias可以属于不同的包名)
https://api.xmpush.xiaomi.com/v3/message/alias
向某个topic推送某条消息(可以指定一个或多个包名)
https://api.xmpush.xiaomi.com/v3/message/topic
向多个topic推送单条消息(可以指定一个或多个包名)
https://api.xmpush.xiaomi.com/v3/message/multi_topic
向所有设备推送某条消息(可以指定一个或多个包名)
https://api.xmpush.xiaomi.com/v3/message/all

HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

表 1-1. Android POST参数说明

类型参数名称参数说明
Stringpayload消息的内容。(注意:需要对payload字符串做urlencode处理)
Stringrestricted_package_nameApp的包名。备注:V2版本支持一个包名,V3版本支持多包名(中间用逗号分割)。
Stringtitle通知栏展示的通知的标题,不允许全是空白字符,长度小于50, 一个中英文字符均计算为1(通知栏消息必填)。
Stringdescription通知栏展示的通知的描述,不允许全是空白字符,长度小于128,一个中英文字符均计算为1(通知栏消息必填)。
Integernotify_typenotify_type的值可以是DEFAULT_ALL或者以下其他几种的OR组合:
DEFAULT_ALL = -1;DEFAULT_SOUND = 1; // 使用默认提示音提示;DEFAULT_VIBRATE = 2; // 使用默认振动提示;DEFAULT_LIGHTS = 4; // 使用默认呼吸灯提示。
longtime_to_live可选项,消息有效期,单位:毫秒(ms)。当用户设备未联网时,消息默认缓存时间为:公信消息最长1天,私信消息最长10天,超过缓存时间消息会丢弃。
longtime_to_send可选项。定时发送消息。用自1970年1月1日以来00:00:00.0 UTC时间表示(以毫秒为单位的时间)。注:仅支持七天内的定时消息。
Integernotify_id可选项。默认情况下,通知栏只显示一条推送消息。如果通知栏要显示多条推送消息,需要针对不同的消息设置不同的notify_id(相同notify_id的通知栏消息会覆盖之前的),且要求notify_id为取值在0~2147483647的整数。
Stringextra.sound_uri可选项,自定义通知栏消息铃声。extra.sound_uri的值设置为铃声的URI。(请参见《服务端Java SDK文档》中的”自定义铃声“一节。)
注:铃声文件放在Android app的raw目录下。
Stringextra.ticker可选项,开启通知消息在状态栏滚动显示。
Stringextra.notify_foreground可选项,开启/关闭app在前台时的通知弹出。当extra.notify_foreground值为”1″时,app会弹出通知栏消息;当extra.notify_foreground值为”0″时,app不会弹出通知栏消息。注:默认情况下会弹出通知栏消息。
(请参见《服务端Java SDK文档》中的“控制App前台通知弹出”一节。)
Stringextra.notify_effect可选项,预定义通知栏消息的点击行为。通过设置extra.notify_effect的值以得到不同的预定义点击行为。
“1″:通知栏点击后打开app的Launcher Activity。“2″:通知栏点击后打开app的任一Activity(开发者还需要传入extra.intent_uri)。“3″:通知栏点击后打开网页(开发者还需要传入extra.web_uri)。(请参见《服务端Java SDK文档》中的“预定义通知栏通知的点击行为”一节。)
Stringextra.intent_uri可选项,打开当前app的任一组件。
Stringextra.web_uri可选项,打开某一个网页。
intextra.flow_control可选项,控制是否需要进行平缓发送。默认不支持。value代表平滑推送的速度。注:服务端支持最低3000/s的qps。也就是说,如果将平滑推送设置为1000,那么真实的推送速度是3000/s。
Stringextra.jobkey可选项,使用推送批次(JobKey)功能聚合消息。客户端会按照jobkey去重,即相同jobkey的消息只展示第一条,其他的消息会被忽略。合法的jobkey由数字([0-9]),大小写字母([a-zA-Z]),下划线(_)和中划线(-)组成,长度不大于20个字符,且不能以下划线(_)开头。
Stringextra.callback可选项,开启消息回执。消息发送后,推送系统能发送回执给开发者,告知开发者这些消息的送达、点击或发送失败状态。
将extra.callback的值设置为第三方接收回执的http接口。接口协议请参见《服务端Java SDK文档》中的“消息回执”一节。
Stringextra.callback.param可选项,自定义回执参数,最大长度256字节。
intextra.callback.type可选项,表示回执类型。详细用法请参见《服务端Java SDK文档》中“消息回执”一节中的callback.type字段。
Stringextra.locale可选项,可以接收消息的设备的语言范围,用逗号分隔。当前设备的local的获取方法:
Locale.getDefault().toString()比如,中国大陆用zh_CN表示。
Stringextra.locale_not_in可选项,无法收到消息的设备的语言范围,逗号分隔。
Stringextra.app_version可以接收消息的app版本号,用逗号分割。安卓app版本号来源于manifest文件中的”android:versionName”的值。注:目前支持MiPush_SDK_Client_2_2_12_sdk.jar(及以后)的版本。
Stringextra.app_version_not_in无法接收消息的app版本号,用逗号分割。
Stringextra.connpt可选项,指定在特定的网络环境下才能接收到消息。目前仅支持指定”wifi”。
Stringextra.only_send_once可选项,extra.only_send_once的值设置为1,表示该消息仅在设备在线时发送一次,不缓存离线消息进行多次下发。
以下参数适用于所有推送消息的HTTP API。
Stringregistration_id根据registration_id,发送消息到指定设备上。可以提供多个registration_id,发送给一组设备,不同的registration_id之间用“,”分割。参数仅适用于“/message/regid”HTTP API。(注意:需要对payload字符串做urlencode处理)
Stringalias根据alias,发送消息到指定的设备。可以提供多个alias,发送给一组设备,不同的alias之间用“,”分割。参数仅适用于“/message/alias”HTTP API。
Stringuser_account根据user_account,发送消息给设置了该user_account的所有设备。可以提供多个user_account,user_account之间用“,”分割。参数仅适用于“/message/user_account”HTTP API。
Stringtopic根据topic,发送消息给订阅了该topic的所有设备。参数仅适用于“/message/topic”HTTP API。
Stringtopicstopic列表,使用;$;分割。注: topics参数需要和topic_op参数配合使用,另外topic的数量不能超过5。参数仅适用于“/message/multi_topic”HTTP API。
Stringtopic_optopic之间的操作关系。支持以下三种:
UNION并集INTERSECTION交集EXCEPT差集例如:topics的列表元素是[A, B, C, D],则并集结果是A∪B∪C∪D,交集的结果是A ∩B ∩C ∩D,差集的结果是A-B-C-D。参数仅适用于“/message/multi_topic”HTTP API。

1. 服务器端还可以定义一些以"extra."开头的POST参数,POST参数形式如:extra.key=value。参数附加说明:

注:至多可以设置10个key-value键值对。

2. 利用v2/message/all可以向所有设备发送消息。参数跟向topic发送消息类似,不需要额外提供topic域。

3. 参数规范与Message类和Sender类中的描述相同。alias,topic,registration_id三者不能同时出现,alias可以有多个,表示向这些alias指定的设备发送消息。返回的是json格式的字符串,包括以下几个字段。

  • "result": string,"ok" 表示成功, 
  • "error" 表示失败。
  • "description": string, 对发送消息失败原因的解释。
  • "data": string,本身就是一个json字符串(其中id字段的值就是消息的Id)。
  • "code": integer,0表示成功,非0表示失败。
  • "info": string,详细信息。

例如:

{"result":"ok","description":"成功","data":{"id":"1000999_1375164696370"},"code":0,"info":"Received push messages for 1 regid"}  

 {"result":"error","reason":"payload参数不能为空","description":"缺失必选参数","code":10016}

Demo

1. 向”alias1”,“alias2”,“alias3” 三个别名指定的设备发送消息。
Request URL: https://api.xmpush.xiaomi.com/v2/message/alias Request
Method: POST
Form Data: alias=alias1,alias2,alias3&description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo&title=notification_title¬ify_type=2&time_to_live=1000&extra.sound_uri=android.resource://com.xiaomi.mipushdemo/raw/shaking
2. 向registration_id为123指定的设备发送消息。
Request URL: https://api.xmpush.xiaomi.com/v2/message/regid Request
Method: POST
Form Data: description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo®istration_id=123&title=notification_title¬ify_type=2&time_to_live=1000¬ify_id=0
3. 向订阅了my_topic的所有设备发送消息。
Request URL: https://api.xmpush.xiaomi.com/v2/message/topic Request
Method: POST
Form Data: description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo&topic=my_topic&title=notification_title¬ify_type=2&time_to_live=1000
4. 自定义点击行为:打开app的Launcher Activity
Request URL: https://api.xmpush.xiaomi.com/v2/message/alias Request
Method: POST
Form Data: alias=test_alias1&description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo&title=notification_title¬ify_type=2&time_to_live=1000&extra.notify_effect=1
5. 自定义点击行为:打开app的任一组件
Request URL: https://api.xmpush.xiaomi.com/v2/message/alias Request
Method: POST
Form Data: alias=test_alias1&description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo&title=notification_title¬ify_type=2&time_to_live=1000&extra.notify_effect=2&extra.intent_uri=intent:#Intent;action=com.a.b.shot;end
6. 自定义点击行为:打开网页
Request URL: https://api.xmpush.xiaomi.com/v2/message/alias Request
Method: POST
Form Data: alias=test_alias1&description=notification_description&restricted_package_name=com.xiaomi.mipushdemo&title=notification_title¬ify_type=2&time_to_live=1000&extra.notify_effect=3&extra.web_uri=http://www.xiaomi.com
7. 向订阅了[A,B,C,D]集合中任一标签的设备发送消息。
Request URL: https://api.xmpush.xiaomi.com/v2/message/multi_topic Request
Method: POST
Form Data: description=notification_description&payload=this+is+xiaomi+push&restricted_package_name=com.xiaomi.mipushdemo&topics=A;$;B;$;C;$;D&topic_op=UNION&title=notification_title¬ify_type=2&time_to_live=1000

二、推送多条消息

正式环境

针对不同的regid推送不同的消息
https://api.xmpush.xiaomi.com/v2/multi_messages/regids
针对不同的alias推送不同的消息
https://api.xmpush.xiaomi.com/v2/multi_messages/aliases
针对不同的userAccount推送不同的消息
https://api.xmpush.xiaomi.com/v2/multi_messages/user_accounts
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

表 2-1. Android POST参数说明

类型参数名称参数说明
Stringmessages发送的消息。messages是json格式的字符串。(注意:需要对messages字符串做urlencode处理)对于extra.sound_uri、extra.notify_foreground、extra.notify_effect、extra.intent_uri、extra.web_uri等以extra为前缀的Post参数,需要将它们定义成一个json字符串,格式如下:
"extra":{"sound_uri":"XXX","notify_effect":"XX"....}
当使用https://api.xmpush.xiaomi.com/v2/multi_messages/regids时,格式满足:  
[
{"target":"regid1","message":{"payload":"your content","restricted_package_name":
"your packagename","notify_type":XXX,"description":"XXX",
"title":"XXX","time_to_live":XXX,"notify_id":XXX,"extra":{"sound_uri":"XXX","notify_effect":"XX"....}}},
{"target":"regids2","message":{......}},
...,
{"target":"regidsN","message":{......}}
]
当使用https://api.xmpush.xiaomi.com/v2/multi_messages/aliases时,格式满足:
[
{"target":"alias1","message":{"payload":"your content","restricted_package_name":
"your packagename","notify_type":XXX,"description":"XXX",
"title":"XXX","time_to_live":XXX,"notify_id":XXX,"extra":{"sound_uri":"XXX","notify_effect":"XX"....}}},
{"target":"alias2","message":{......}},
...,
{"target":"aliasN","message":{......}}
]
longtime_to_send可选项,定时发送批量消息。用自1970年1月1日以来00:00:00.0 UTC时间表示(以毫秒为单位的时间)。注:
• 定时发送批量消息,不需要针对每条消息设置time_to_send。
• 仅支持七天内的定时消息。

返回的是json格式的字符串,包括以下几个字段。

  • "result": string,"ok" 表示成功, "error" 表示失败。
  • "description": string, 对发送消息失败原因的解释。
  • "data": string,本身就是一个json字符串(其中id字段的值就是消息的Id)。
  • "code": integer,0表示成功,非0表示失败。
  • "info": string,详细信息。

Demo

注意:为了将json数据的格式看得比较清晰,我们没有做urlencode处理。但是,实际开发中必须对json数据做urlencode处理。

1. 向不同的regid发送不同的消息
https://api.xmpush.xiaomi.com/v2/multi_messages/regids ?messages=[{"target":"regid1","message": {"payload":"send message to regid1","restricted_package_name":"com.xiaomi.mipushdemo", "notify_type":1,"description":"description1","title":"title1","time_to_live":100000, "extra":{"sound_uri":"android.resource://com.xiaomi.mipushdemo/raw/shaking"}}}, {"target":"regid2","message": {"payload":"send message to regid2","restricted_package_name":"com.xiaomi.mipushdemo", "notify_type":2,"description":"description2","title":"title2","time_to_live":20000}}]
2. 向不同的alias发送不同的消息
https://api.xmpush.xiaomi.com/v2/multi_messages/aliases ?messages=[{"target":"alias1","message": {"payload":"send message to alias1","restricted_package_name":"com.xiaomi.mipushdemo", "notify_type":1,"description":"description1","title":"title1","time_to_live":100000}}, {"target":"alias2","message": {"payload":"send message to alias2","restricted_package_name":"com.xiaomi.mipushdemo", "notify_type":2,"description":"description2","title":"title2","time_to_live":20000}}]

三、获取消息的统计数据

请使用trace接口获取消息的统计数据,具体参见“6 追踪消息状态”一节。(https://api.xmpush.xiaomi.com/v1/stats/message/counters 该接口目前已废弃。)

四、追踪消息状态

获取某条消息或某个时间段的消息统计数据

追踪消息https://api.xmpush.xiaomi.com/v1/trace/message/status
追踪某个时间区域内的消息https://api.xmpush.xiaomi.com/v1/trace/messages/status
HTTP请求方法:GET

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

表 4-1. 追踪消息的GET参数说明

类型参数名称参数说明
Stringmsg_id可选项,表示消息的Id。
Stringjob_key可选项,消息组的jobKey。如果jobKey不为空,则查询消息组的状态。否则,使用msg_id 查询单条消息的状态。

Demo:

{"result":"ok", 
"description":"成功",
"data":{
"data":" {\"id\":\"s1005246409317636237jB\",\"delivery_rate\":\"100%\",\"delivered\":1,\"resolved\":1, \"msg_type\":\"BatchRegId\",\"create_time\":\"2014-08-29 21:07:16\",\"time_to_live\":\"1209600s\", \"click\":0,\"click_rate\":\"0%\"}"},
"code":0}

表 4-2. 追踪某个时间区域内消息的GET参数说明

类型参数名称参数说明
longbegin_time表示开始时间戳,单位ms。
longend_time表示结束时间戳,单位ms。

Demo:

{"result":"ok", 
"description":"成功",
"data":{
"data":"[ {\"id\":\"a1000270409820283940fp\",\"delivery_rate\":\"100%\",\"delivered\":2,\"resolved\":2, \"msg_type\":\"BatchAlias\",\"create_time\":\"2014-09-04 16:44:43\",\"time_to_live\":\"109s\", \"create_timestamp\":1409820283941,\"click\":0,\"click_rate\":\"0%\"},
{\"id\":\"s1000270409820247716NA\",\"delivery_rate\":\"100%\",\"delivered\":2,\"resolved\":2, \"msg_type\":\"BatchRegId\",\"create_time\":\"2014-09-04 16:44:07\",\"time_to_live\":\"109s\", \"create_timestamp\":1409820247717,\"click\":0,\"click_rate\":\"0%\"},
{\"id\":\"a1000270409820207789dJ\",\"delivery_rate\":\"0%\",\"delivered\":0,\"resolved\":1, \"msg_type\":\"Alias\",\"create_time\":\"2014-09-04 16:43:27\",\"time_to_live\":\"1209600s\", \"create_timestamp\":1409820207789,\"click\":0,\"click_rate\":\"0%\"},
{\"id\":\"t1000270409820155849Ek\",\"delivery_rate\":\"100%\",\"delivered\":2,\"resolved\":2, \"msg_type\":\"Topic\",\"create_time\":\"2014-09-04 16:42:35\",\"time_to_live\":\"109s\", \"create_timestamp\":1409820155849,\"click\":0,\"click_rate\":\"0%\"},
{\"id\":\"s10002704098201310026i\",\"delivery_rate\":\"0%\",\"delivered\":0,\"resolved\":1, \"msg_type\":\"Common\",\"create_time\":\"2014-09-04 16:42:11\",\"time_to_live\":\"1209600s\", \"create_timestamp\":1409820131002,\"click\":0,\"click_rate\":\"0%\"}]"},
"code":0}

其中,

  • id表示单条消息的id。
  • resolved表示消息的计划送达数。
  • raw_counter表示https原始请求目标数。
  • invalid_target表示无效目标数(alias无效,、user_account无效等)。
  • app_not_register表示app未注册push服务数量。
  • device_condition_unmatch表示设备所处的环境不符合消息设置的条件(例如:网络环境不匹配, 地域不匹配, app版本不匹配, 机型不匹配等)。
  • msg_send表示消息的实际下发数。
  • delivered表示消息的送达数。
  • delivery_rate表示送达率(送达数/有效设备数)。
  • bar_closed表示屏蔽通知栏数。
  • msg_display表示消息的展示数(送达数-屏蔽通知栏数)。
  • click表示消息的点击数。
  • click_rate表示消息的点击率(点击数/送达数)。
  • create_time表示消息的发送时间。
  • time_to_live表示消息的有效期。
  • msg_type表示该消息发送的方式(msg_type分为Common、BatchRegId、Alias、BatchAlias、Topic)。

获取批量消息统计数据

批量消息统计数据接口支持根据多个消息ID或jobkey(不超过100)批量查询对应的消息统计。

https://api.xmpush.xiaomi.com/v1/trace/multi_message/status
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

表 4-3. 请求参数说明

类型 参数名称 参数说明
 String[] job_keysjobkey列表。
示例:op335013,op335012
 String[]msg_ids消息ID列表。
示例:msgid1,msgid2

响应示例:

{ 
"result": "ok",
"trace_id": "Xdm04456572507794174Qy",
"code": 0,
"data": {
"data": {
"op335013": {
"create_time": "2019-10-18 17:51:04",
"invalid_target": 0,
"msg_send": 2,
"raw_counter": 2,
"click_rate": "50%",
"delivered": 2,
"click": 1,
"bar_closed": 0,
"device_condition_unmatch": 0,
"create_timestamp": 1571392264044,
"time_to_live": "1145336s",
"msg_type": "Alias",
"delivery_rate": "100%",
"id": "acm5550657139226404450",
"resolved": 2,
"app_not_register": 0,
"msg_display": 2
},
"op335012": {
"create_time": "2019-10-18 17:51:03",
"invalid_target": 1,
"msg_send": 0,
"raw_counter": 1,
"click_rate": "0%",
"delivered": 0,
"click": 0,
"bar_closed": 0,
"device_condition_unmatch": 0,
"create_timestamp": 1571392263756,
"time_to_live": "1145337s",
"msg_type": "Alias",
"delivery_rate": "0%",
"id": "acm53814571392263756Lv",
"resolved": 0,
"app_not_register": 0,
"msg_display": 0
}
}
},
"description": "成功"
}

五、订阅/取消订阅标签

正式环境

订阅RegId的标签https://api.xmpush.xiaomi.com/v2/topic/subscribe
取消订阅RegId的标签https://api.xmpush.xiaomi.com/v2/topic/unsubscribe
订阅alias的标签https://api.xmpush.xiaomi.com/v2/topic/subscribe/alias
取消订阅alias的标签https://api.xmpush.xiaomi.com/v2/topic/unsubscribe/alias
取消某个标签的所有订阅https://api.xmpush.xiaomi.com/v2/topic/unsubscribe/all
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

针对/v2/topic/subscribe和/v2/topic/unsubscribe的参数说明:

表 5-1. 订阅/取消订阅RegId的标签的参数说明

类型参数名称参数说明
Stringregistration_id设备regid列表,逗号分隔,必填。限制:最多1000个regid。
Stringtopic标签,必填。
Stringrestricted_package_name包名。注意:app设置了多包名,则必填。
Stringcategory可选。

Demo:

https://api.xmpush.xiaomi.com/v2/topic/subscribe ?registration_id=abc &topic=tt

针对/v2/topic/subscribe/alias和/v2/topic/unsubscribe/alias的参数说明:

表 5-2. 订阅/取消订阅alias的标签的参数说明

类型参数名称参数说明
Stringaliases各个alias之间用逗号分割,必填。限制:最多1000个alias。
Stringtopic标签,必填。
Stringrestricted_package_name包名。注意:app设置了多包名,则必填。
Stringcategory可选。

Demo:

https://api.xmpush.xiaomi.com/v2/topic/subscribe/alias ?aliases=a1 &topic=tt

针对/v2/topic/unsubscribe/all的参数说明:

表 5-3. 取消某个标签的所有订阅的参数说明

 类型 参数名称参数说明 
 String topic 标签,必填。
 String restricted_package_name 包名。注意:app设置了多包名,则必填。
 String category 可选。

Demo:

https://api.xmpush.xiaomi.com/v2/topic/unsubscribe/all ?topic=tt
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

六、获取失效的regId列表

feedback接口已下线,请使用消息回执callback代替,设置extra.callback.type=16可获取无效的目标设备列表。

类型参数名称  参数说明
Stringextra.callback可选项,开启消息回执。消息发送后,推送系统能发送回执给开发者,告知开发者这些消息的送达、点击或发送失败状态。将extra.callback的值设置为第三方接收回执的http接口。接口协议请参见《服务端Java SDK文档》中的“消息回执”一节。
Stringextra.callback.param可选项,自定义回执参数,最大长度256字节。
intextra.callback.type可选项,表示回执类型。详细用法请参见《服务端Java SDK文档》中“消息回执”一节中的callback.type字段。

七、获取一个应用的某个用户目前设置的所有Alias

正式环境

API地址:https://api.xmpush.xiaomi.com/v1/alias/all
HTTP请求方法:GET

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注:字符key必须小写。例如:Authorization: key=YOUR_APP_SECRET

表 7-1. 获取所有Alias的GET

类型参数名称参数说明
Stringrestricted_package_name可选。应用包名,因为一个AppId可能对应多个包名,使用该参数指定具体的包名。
Stringregistration_id查询设备的regId。

返回的是json格式的字符串。

如果成功,则返回的字符串格式如下。

​{"result":"ok","code":0,"data":{"list":["XXXXXX","XXXXXX",...,"XXXXXX"]},"description":"成功"

如果失败,则返回的字符串格式如下。

{"result":"error","reason":"XXXXXXXXX","description":"XXXX","code":XXXX}

八、获取一个应用的某个用户目前订阅的所有Topic

正式环境

API地址:https://api.xmpush.xiaomi.com/v1/topic/all
HTTP请求方法:GET

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注:字符key必须小写。例如:Authorization: key=YOUR_APP_SECRET

表 8-1. 获取所有Topic的GET参数说明

类型参数名称参数说明
Stringrestricted_package_name可选。应用包名,因为一个AppId可能对应多个包名,使用该参数指定具体的包名。
Stringregistration_id查询设备的regId。

返回的是json格式的字符串。

如果成功,则返回的字符串格式如下。

​{"result":"ok","code":0,"data":{"list":["XXXXXX","XXXXXX",...,"XXXXXX"]},"description":"成功"}

如果失败,则返回的字符串格式如下。

{"result":"error","reason":"XXXXXXXXX","description":"XXXX","code":XXXX}

九、获取一个userAccount对应的所有有效regId

正式环境

API地址:https://api.xmpush.xiaomi.com/v1/useraccount/get_regids_by_useraccount
HTTP请求方法:GET

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注:字符key必须小写。例如:Authorization: key=YOUR_APP_SECRET

表 9-1.  GET参数说明

类型 参数名称 参数说明
 StringpackageName可选。应用包名,因为一个AppId可能对应多个包名,使用该参数指定具体的包名。
 StringuserAccount要查询的userAccount。
 LongappId
应用的AppId。

返回的是json格式的字符串。

如果成功,则返回的字符串格式如下。

​{"result":"ok","code":0,"data":{"list":["XXXXXX","XXXXXX",...,"XXXXXX"]},"description":"成功"}

如果失败,则返回的字符串格式如下。

{"result":"error","reason":"XXXXXXXXX","description":"XXXX","code":XXXX}

十、检测/删除定时任务

正式环境

检测定时任务是否存在https://api.xmpush.xiaomi.com/v2/schedule_job/exist
删除定时任务https://api.xmpush.xiaomi.com/v2/schedule_job/delete
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注:字符key必须小写。例如:Authorization: key=YOUR_APP_SECRET

表 10-1. 参数列表

类型参数名称参数说明
Stringjob_id表示消息的Id。

返回的是json格式的字符串。

  • code是0表示成功;否则表示失败。
  • reason表示失败的原因。

十一、通知类别(Channel)

通知类别(Channel)介绍

通知类别(Channel)是 Android O 引入的新功能,旨在解决以下问题:

  • 应用的通知越来越多,给用户造成明显打扰。
  • 但用户只能全局屏蔽这个应用的全部通知,不能屏蔽部分,然后留下对自己有用的。

为了解决这个问题,Android 支持开发者给自己的通知分成若干类,然后允许用户单独屏蔽这个类别的通知。关于通知类别(Channel)的详细介绍请参见《MIUI 10 通知类别 (Channel) 适配》

说明:当前版本暂不支持设置Channel Group。

使用方法

注意:用户最多可创建8组Channel。各Channel的Channel_id不可重复,Channel_name也不允许同名。Channel一旦创建并发送了带有Channel的消息,设备上即会生成这个Channel,不能删除也不能修改,所以请谨慎创建Channel。
  • 添加新Channel

参考《小米推送消息分类新规》2.channel申请与接入方法。

  • 发送带有Channel的消息:

参数说明:

类型 参数名称 参数说明
Stringextra.channel_id必填,通知类别的ID。
Stringextra.channel_name可选,通知类别的名称。
Stringextra.channel_description可选,通知类别的描述。

十二、消息终止

一些时候运营人员可能会出现误发消息的情况,这时可以通过“消息终止”功能立即停止消息下发,以便及时截断消息发送、防止影响面扩大。

根据消息ID停止消息

API地址:https://api.xmpush.xiaomi.com/v1/message/switch/stop_by_id
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型参数名称  参数说明
 String  restricted_package_name 应用包名。
 String[] msg_ids 需要停止的消息ID列表。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

根据消息jobkey停止消息

API地址:https://api.xmpush.xiaomi.com/v1/message/switch/stop_by_jobkey
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型参数名称  参数说明
 String  restricted_package_name 应用包名。
 String[] job_keys  需要停止的消息jobkey列表。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

十三、消息撤回

根据设备alias撤回消息

API地址:https://api.xmpush.xiaomi.com/v1/message/alias/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
Stringrestricted_package_name应用包名。
Integernotify_id消息notifyId,要求为取值在0~2147483647范围内的整数,默认取值为0。
String[]aliases目标设备alias列表。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

根据设备regId撤回消息

API地址:https://api.xmpush.xiaomi.com/v1/message/regid/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
Stringrestricted_package_name应用包名。
Integernotify_id消息notifyId,要求为取值在0~2147483647范围内的整数,默认取值为0。
String[]registration_ids目标设备regId列表。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

根据设备userAccount撤回消息

API地址:https://api.xmpush.xiaomi.com/v1/message/user_account/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
Stringrestricted_package_name应用包名。
Integernotify_id消息notifyId,要求为取值在0~2147483647范围内的整数,默认取值为0。
String[]user_accounts目标设备userAccount列表。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

根据消息id和jobkey撤回消息

API地址:https://api.xmpush.xiaomi.com/v2/message/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
 Stringrestricted_package_name 应用包名。
 Stringmsg_id 消息id,和job_key二选一。
 String
job_key
 消息jobkey,和msg_id二选一。

响应示例:

{
"result": "ok",
"code": 0,
"description": "成功"
}

撤回topic消息

API地址:https://api.xmpush.xiaomi.com/v1/message/topic/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
 Stringrestricted_package_name应用包名。
 Integernotify_id消息notifyId,要求为取值在0~2147483647范围内的整数,默认取值为0。
 Stringtopic消息topic。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}

撤回多topic消息

API地址:https://api.xmpush.xiaomi.com/v1/message/multi_topic/revoke
HTTP请求方法:POST

添加HEADER字段Authorization,用于身份验证。格式是 key=<APP_SECRET>。

APP_SECRET是从开发者网站申请得到。

注意:字符key必须小写,例如:Authorization: key=YOUR_APP_SECRET

POST参数说明:

类型 参数名称 参数说明
 Stringrestricted_package_name应用包名。
 Integernotify_id消息notifyId,要求为取值在0~2147483647范围内的整数,默认取值为0。
 String[]topics消息topic列表。
 Stringtopic_optopic关系,支持UNION并集、INTERSECTION交集、EXCEPT差集。

响应示例:

{
"result": "ok",
"trace_id": "Xdm01712568685156246Gj",
"code": 0,
"description": "成功"
}
上一篇:
下一篇: