透传限制说明 * 为优化 flyme 系统整体功耗, 推送平台决定本周五 (6 月 16 号 ) 起限制透传消息推送的使用, 不排除关闭透传推送类型 使用透传推送的业务请尽快切换到通知栏推送, 以避免消息推送失败 新接入的应用请使用通知栏推送受影响的接口及功能 : 1. pushid 推送接口 ( 透传消息 ) 2. 别名推送接口 ( 透传消息 ) 3. 获取 taskid 的透传推送 (gettaskid) 4. 应用全部推送 ( 透传消息 ) 5. 应用标签推送 ( 透传消息 ) 6. 在平台上进行的透传推送 魅族开放平台 PUSH 系统 HTTP 接口文档 更新日志 API 接口规范 接口响应规范 HTTP 接口遵循魅族 API 协议规范 返回数据格式统一如下 : code :, // 必选, 返回码 message :, // 可选, 返回消息, 网页端接口出现错误时使用此消息展示给用户, 手机端可忽略此消息, 甚至服务端不传输此消息 value :,// 必选, 返回结果 redirect : // 可选, returncode=300 重定向时, 使用此 URL 重新请求 msgid : // 可选, 消息推送 msgid Api returncode 定义 code value 200 正常 500 其他异常 1001 系统错误 1003 服务器忙 1/41
1005 错误, 请参考 API 文档 1006 签名认证失败 110000 不合法 110001 appkey 不合法 110004 不能为空 110009 应用被加入黑名单 110010 应用推送速率过快 110053 透传超过限制 接口签名规范 请求分别是 k1 k2 k3, 它们的值分别是 v1 v2 v3, 计算方法如下所示 : 1. 将以其名的字典序升序进行排序, 如对 k1 k2 k3 排序 2. 遍历排序后的字典, 将所有按 "key=value" 格式拼接在一起, 如 k1=v1k2=v2k3=v3 3. 在拼接好的字符串末尾追加上应用的 Secret Key 上述字符串的 MD5 值即为签名的值 (32 位小写 ) 将签名值放在请求的中例如 =MD5_SIGN 服务端 SDK 调用 API 的应用的私钥 Secret Key 为 appsecret /** * @param parammap 请求 * @param secret 密钥 * @return md5 摘要 */ public static String getsignature(map<string, String> parammap, String secret) // 先将以其名的字典序升序进行排序 Map<String, String> sortedparams = new TreeMap<String, String> (parammap); Set<Entry<String, String>> entrys = sortedparams.entryset(); // 遍历排序后的字典, 将所有按 "key=value" 格式拼接在一起 StringBuilder basestring = new StringBuilder(); for (Entry<String, String> param : entrys) basestring.append(param.getkey()).append("=").append(param.getvalue()); basestring.append(secret); logger.debug("basestring is:", new Object[]basestring.toString()); 2/41
// 使用 MD5 对待签名串求签 return MD5Util.MD5Encode(basestring.toString(),"UTF-8"); // 示例, 注意是针对接口中所有做签名, 并且是原始字符串 ( 非 urlencode) public static void main(string[] args) // 本示例为三个 pushids messagejson Map<String, String> parammap = new HashMap<String, String>(); parammap.put("", "10000"); parammap.put("pushids", "RA50c6348036344485d01776773577c64740465480a6b"); parammap.put("messagejson", " \"title\":\"title\",\"content\":\"content\",\"pushtimeinfo\": \"offline\":1,\"validtime\":24"); String = SignUtils.getSignature(paramMap, "<APP_SECRET>"); //MD5 原始字符串为 =10000messageJson="title": "title","content": "content","pushtimeinfo": "offline": 1,"validTime": 24pushIds=RA50c6348036344485d01776773577c64740465480a6b<APP_SECRET> //MD5 摘要 为 ac076ff25d9900015a681cb5172aa53b 接口请求示例 POST http://server-apipush.meizu.com/garcia/api/server/push/unvarnished/pushbyalias HTTP/1.1 Host: server-api-push.meizu.com Connection: keep-alive Content-Length: 226 Cache-Control: no-cache Content-Type: application/x-www-form-urlencoded Accept: */* Accept-Encoding: gzip, deflate Accept-Language: zh-cn,zh;q=0.8 alias=xxx&=xxx&messagejson=%7b%22title%22%3a%22title%22%2c%22content%22%3 A%22hello+test%22%2C%22pushTimeInfo%22%3A%7B%22offLine%22%3A1%2C%22validTime%2 2%3A24%7D%7D&=a68b75e5d5b30e35536f130cf1cae14a HTTP/1.1 200 OK Server: nginx Date: Wed, 28 Dec 2016 03:34:53 GMT Content-Type: application/json; charset=utf-8 Content-Length: 87 Connection: keep-alive Content-Language: zh-cn Set-Cookie: JSESSIONID=1wl3nhcfqroiicj6pvxwdvjx6;Path=/ 3/41
Expires: Thu, 01 Jan 1970 00:00:00 GMT "code":"200","message":"","value":"110005":["xxxxxx"],"redirect":"" API 说明 前言 消息推送结果接口响应部分 value 是 map 集合的 json 格式且只返回推送非法的 pushid, 合法的 pushid 不予返回, 一般情况下,pushId 未注册则视为非法 map 部分 code 定义 code value 201 没有权限, 服务器主动拒绝 501 推送消息失败 (db_error) 513 推送消息失败 519 推送消息失败服务过载 520 消息折叠 (1 分钟内同一设备同一应用消息收到多次, 默认 5 次 ) 110002 pushid 失效 (pushid 未订阅 ) 110003 pushid 非法 110005 alias 失效 (alias 未订阅或者消息开关关闭 ) 110010 pushid 失效 ( 消息开关关闭 ) 注 : 平台使用 pushid 来标识每个独立的用户, 每一台终端上每一个 app 拥有一个独立的 pushid 非任务推送 应用场景 场景 1: 查找手机业务需要远程定位位置, 可发送消息指令到对应的设备 场景 2: 社区用户回帖消息提醒, 用户对发表的帖子有最新回复时, 消息提醒发帖者 pushid 推送接口 ( 透传消息 ) 接口功能 请求方法 根据 pushid 推送 Post 4/41
请求路径请求 HOST 请求头备注请求 /garcia/api/server/push/unvarnished/pushbypushid server-api-push.meizu.com 签名 =MD5_SIGN 请求 pushids messagejson 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 推送设备, 一批最多不能超过 1000 个多个英文逗号分割必填 Json 格式, 具体如下必填 "title": 推送标题, string 非必填, 字数显示 1~32 个 "content": 推送, string 必填, 字数限制 2000 以内 "pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] int 非必填, 默认值为 1 "validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 5/41
"value": "110002": [ "J0476035d625e6c64567f71487e040e7d017f0558675b", "J0476045d625e6c64567f71487e040e7d017f0558675b", "J0476035d625e6sd64567f71487e040e7d017f0558675b" ], "110003": [ "J0476035d625e6c64567f714567e040e7d017f0558675b" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" pushid 推送接口 ( 通知栏消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 根据 pushid 推送 Post /garcia/api/server/push/varnished/pushbypushid server-api-push.meizu.com 签名 =MD5_SIGN 请求 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 6/41
pushids messagejson 推送设备, 一批最多不能超过 1000 个多个英文逗号分割必填 Json 格式, 具体如下必填 "noticebarinfo": "noticebartype": 通知栏样式 (0, " 标准 "),(2, " 安卓原生 ") int 非必填, 值为 0 "title": 推送标题, string 必填, 字数限制 1~32 字符 "content": 推送, string 必填, 字数限制 1~100 字符, "noticeexpandinfo": "noticeexpandtype": 展开方式 (0, " 标准 "),(1, " 文本 ") int 非必填, 值为 0 1 "noticeexpandcontent": 展开, string noticeexpandtype 为文本时, 必填, "clicktypeinfo": "clicktype": 点击动作 (0," 打开应用 "),(1," 打开应用页面 "),(2," 打开 URI 页面 "), (3, " 应用客户端自定义 ") int 非必填, 默认为 0 "url": URI 页面地址, string clicktype 为打开 URI 页面时, 必填 "parameters": JSON 格式 非必填 "activity": 应用页面地址 string clicktype 为打开应用页面时, 格式 pkg.activity eg: com.meizu.upspushdemo.testactivity 必填 "customattribute": 应用客户端自定义 string clicktype 为应用客户端自定义时, 必填, 输入长度为 1000 字节以内, "pushtimeinfo": "offline": 是否进离线消息 (0 否 1 是 [validtime]) int 非必填, 默认值为 1 "validtime": 有效时长 (1 到 72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24, "advanceinfo": "suspend": 是否通知栏悬浮窗显示 (1 显示 0 不显示 ) int 非必填, 默认 1 "clearnoticebar": 是否可清除通知栏 (1 可以 0 不可以 ) int 非必填, 默认 1 "fixdisplay": 是否定时展示 (1 是 0 否 ) int 非必填, 默认 0 "fixstartdisplaytime": 定时展示开始时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "fixenddisplaytime ": 定时展示结束时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "notificationtype": "vibrate": 震动 (0 关闭 1 开启 ), int 非必填, 默认 1 "lights": 闪光 (0 关闭 1 开启 ), int 非必填, 默认 1 "sound": 声音 (0 关闭 1 开启 ), int 非必填, 默认 1, "notifykey": "" // 非必填默认空分组合并推送的 key, 凡是带有此 key 的通知栏消息只会显示最后到达的一条 由数字 ([0-9]), 大小写字母 ([a-za-z]), 下划线 (_) 和中划线 (-) 组成, 长度不大于 8 个字符, // 需要启用回执, 设置 extra, 需回执则可不设置 7/41
"extra": "callback":"http://flyme.callback",//string( 必填字段 ), 第三方接收回执的 Http 接口, 最大长度 128 字节 "callback.param":"param",//string( 可选字段 ), 第三方自定义回执, 最大长度 64 字节 "callback.type":"3 //int( 可选字段 ), 回执类型 (1- 送达回执, 2- 点击回执, 3- 送达与点击回执 ), 默认 3 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "value": "110002": [ "J0476035d625e6c64567f71487e040e7d017f0558675b", "J0476045d625e6c64567f71487e040e7d017f0558675b", "J0476035d625e6sd64567f71487e040e7d017f0558675b" ], "110003": [ "J0476035d625e6c64567f714567e040e7d017f0558675b" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", 8/41
"value": "", "redirect": "" 别名推送接口 ( 透传消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 根据别名推送 Post /garcia/api/server/push/unvarnished/pushbyalias server-api-push.meizu.com 签名 =MD5_SIGN 请求 alias messagejson 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 推送别名, 一批最多不能超过 1000 个多个英文逗号分割必填 Json 格式, 具体如下必填 "title": 推送标题, string 非必填, 字数显示 1~32 个字符 "content": 推送, string 必填, 字数限制 2000 字节以内 "pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] int 非必填, 默认值为 1 "validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 9/41
"msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "value": "110005": [ "alias1", "alias2" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" 别名推送接口 ( 通知栏消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 根据别名推送 Post /garcia/api/server/push/varnished/pushbyalias server-api-push.meizu.com 备注 签名 =MD5_SIGN 10/41
请求 请求 alias messagejson 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 推送别名, 一批最多不能超过 1000 个多个英文逗号分割必填 Json 格式, 具体如下必填 "noticebarinfo": "noticebartype": 通知栏样式 (0, " 标准 "),(2, " 安卓原生 ") int 非必填, 值为 0 "title": 推送标题, string 必填, 字数限制 1~32 字符 "content": 推送, string 必填, 字数限制 1~100 字符, "noticeexpandinfo": "noticeexpandtype": 展开方式 (0, " 标准 "),(1, " 文本 ") int 非必填, 值为 0 1 "noticeexpandcontent": 展开, string noticeexpandtype 为文本时, 必填, "clicktypeinfo": "clicktype": 点击动作 (0," 打开应用 "),(1," 打开应用页面 "),(2," 打开 URI 页面 "), (3, " 应用客户端自定义 ") int 非必填, 默认为 0 "url": URI 页面地址, string clicktype 为打开 URI 页面时, 必填 "parameters": JSON 格式 非必填 "activity": 应用页面地址 string clicktype 为打开应用页面时, 格式 pkg.activity eg: com.meizu.upspushdemo.testactivity 必填 "customattribute": 应用客户端自定义 string clicktype 为应用客户端自定义时, 必填, 输入长度为 1000 字节以内, "pushtimeinfo": "offline": 是否进离线消息 (0 否 1 是 [validtime]) int 非必填, 默认值为 1 "validtime": 有效时长 (1 72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24, "advanceinfo": "suspend": 是否通知栏悬浮窗显示 (1 显示 0 不显示 ) int 非必填, 默认 1 "clearnoticebar": 是否可清除通知栏 (1 可以 0 不可以 ) int 非必填, 默认 1 "fixdisplay": 是否定时展示 (1 是 0 否 ) int 非必填, 默认 0 "fixstartdisplaytime": 定时展示开始时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "fixenddisplaytime ": 定时展示结束时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "notificationtype": "vibrate": 震动 (0 关闭 1 开启 ), int 非必填, 默认 1 11/41
"lights": 闪光 (0 关闭 1 开启 ), int 非必填, 默认 1 "sound": 声音 (0 关闭 1 开启 ), int 非必填, 默认 1, "notifykey": "" // 非必填默认空分组合并推送的 key, 凡是带有此 key 的通知栏消息只会显示最后到达的一条 由数字 ([0-9]), 大小写字母 ([a-za-z]), 下划线 (_) 和中划线 (-) 组成, 长度不大于 8 个字符, // 需要启用回执, 设置 extra, 需回执则可不设置 "extra": "callback":"http://flyme.callback",//string( 必填字段 ), 第三方接收回执的 Http 接口, 最大长度 128 字节 "callback.param":"param",//string( 可选字段 ), 第三方自定义回执, 最大长度 64 字节 "callback.type":"3 //int( 可选字段 ), 回执类型 (1- 送达回执, 2- 点击回执, 3- 送达与点击回执 ), 默认 3 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "value": "110005": [ "alias1", "alisa2" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 12/41
"code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" 任务推送 pushid 推送 应用场景 场景 1: 浏览器对指定的某一大批量 pushid 用户推送活动或者新闻消息, 通过先获取 taskid, 然后通过 taskid 批量推送, 推送过程中可以根据 taskid 时时获取推送统计结果 获取推送 taskid 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 获取推送 taskid Post /garcia/api/server/push/pushtask/gettaskid server-api-push.meizu.com 签名 =MD5_SIGN 请求 pushtype messagejson 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 消息类型 0 通知栏 1 透传必填 Json 格式, 具体如下必填 通知栏类型 (pushtype=0) 13/41
"noticebarinfo": "noticebartype": 通知栏样式 (0, " 标准 "),(2, " 安卓原生 ") int 非必填, 值为 0 "title": 推送标题, string 必填, 字数限制 1~32 字符 "content": 推送, string 必填, 字数限制 1~100 字符, "noticeexpandinfo": "noticeexpandtype": 展开方式 (0, " 标准 "),(1, " 文本 ") int 非必填, 值为 0 1 "noticeexpandcontent": 展开, string noticeexpandtype 为文本时, 必填, "clicktypeinfo": "clicktype": 点击动作 (0," 打开应用 "),(1," 打开应用页面 "),(2," 打开 URI 页面 "), (3, " 应用客户端自定义 ") int 非必填, 默认为 0 "url": URI 页面地址, string clicktype 为打开 URI 页面时, 必填 "parameters": JSON 格式 非必填 "activity": 应用页面地址 string clicktype 为打开应用页面时, 格式 pkg.activity eg: com.meizu.upspushdemo.testactivity 必填 "customattribute": 应用客户端自定义 string clicktype 为应用客户端自定义时, 必填, 输入长度为 1000 字节以内, "pushtimeinfo": "offline": 是否进离线消息 (0 否 1 是 [validtime]) int 非必填, 默认值为 1 "validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24, "advanceinfo": "suspend": 是否通知栏悬浮窗显示 (1 显示 0 不显示 ) int 非必填, 默认 1 "clearnoticebar": 是否可清除通知栏 (1 可以 0 不可以 ) int 非必填, 默认 1 "fixdisplay": 是否定时展示 (1 是 0 否 ) int 非必填, 默认 0 "fixstartdisplaytime": 定时展示开始时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "fixenddisplaytime ": 定时展示结束时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "notificationtype": "vibrate": 震动 (0 关闭 1 开启 ), int 非必填, 默认 1 "lights": 闪光 (0 关闭 1 开启 ), int 非必填, 默认 1 "sound": 声音 (0 关闭 1 开启 ), int 非必填, 默认 1, "notifykey": "" // 非必填默认空分组合并推送的 key, 凡是带有此 key 的通知栏消息只会显示最后到达的一条 由数字 ([0-9]), 大小写字母 ([a-za-z]), 下划线 (_) 和中划线 (-) 组成, 长度不大于 8 个字符 透传类型 (pushtype=1) "title": 推送标题, string 必填, 字数显示 1~32 个字符 "content": 推送, string 必填, 字数限制 2000 字节以内 14/41
"pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] int 非必填, 默认值为 1 "validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 "value": "taskid": 20457 ( 任务 Id) "pushtype": 0 ( 推送类型 0 通知栏 1 透传 ) "": 100999 ( 应用的 ), "redirect": "" pushid 推送接口 ( 透传消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 根据 pushid 推送 Post /garcia/api/server/push/task/unvarnished/pushbypushid server-api-push.meizu.com 签名 =MD5_SIGN 请求 taskid 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 推送任务 ID 必填 15/41
pushids 推送设备, 多个英文逗号分割必填 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "code": "110032", "message": " 非法的 taskid", "value": "" "value": "110002": [ "J0476035d625e6c64567f71487e040e7d017f0558675b", "J0476045d625e6c64567f71487e040e7d017f0558675b", "J0476035d625e6sd64567f71487e040e7d017f0558675b" ], "110003": [ "J0476035d625e6c64567f714567e040e7d017f0558675b" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", 16/41
"message": " 应用请求频率超过限制 ", "value": "", "redirect": "" pushid 推送接口 ( 通知栏消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 根据 pushid 推送 Post /garcia/api/server/push/task/varnished/pushbypushid server-api-push.meizu.com 签名 =MD5_SIGN 请求 taskid pushids 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 推送任务 ID 必填 推送设备, 一批最多不能超过 1000 个多个英文逗号分割必填 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 17/41
"code": "110032", "message": " 非法的 taskid", "value": "" "value": "110002": [ "J0476035d625e6c64567f71487e040e7d017f0558675b", "J0476045d625e6c64567f71487e040e7d017f0558675b", "J0476035d625e6sd64567f71487e040e7d017f0558675b" ], "110003": [ "J0476035d625e6c64567f714567e040e7d017f0558675b" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" 别名推送接口 ( 透传消息 ) 接口功能 请求方法 请求路径 请求 HOST 根据别名推送 Post /garcia/api/server/push/task/unvarnished/pushbyalias server-api-push.meizu.com 请求头 18/41
备注 请求 签名 =MD5_SIGN 请求 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 taskid alias 推送任务 ID 必填 推送别名, 一批最多不能超过 1000 个多个英文逗号分割必填 "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "code": "110032", "message": " 非法的 taskid", "value": "" "value": "110005": [ "alias1", "alias2" ], 19/41
"msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" 别名推送接口 ( 通知栏消息 ) 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 根据别名推送 Post /garcia/api/server/push/task/varnished/pushbyalias server-api-push.meizu.com 签名 =MD5_SIGN 请求 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 taskid alias 推送任务 ID 必填 推送别名, 一批最多不能超过 1000 个多个英文逗号分割必填 20/41
"msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" "value": 失败情况 "code": "110032", "message": " 非法的 taskid", "value": "" "value": "110005": [ "alias1", "alias2" ], "msgid": "c2ee5c3bf00448cfbceb7fdf68c3c8eb" 超速情况 "code": "110010", "message": " 应用请求频率超过限制 ", "value": "", "redirect": "" 全部 & 标签推送 应用场景 全部推送 : 音乐中心搞一个全网活动, 需要对所有安装此应用的用户推送消息 标签推送 : 阅读咨询应用做新闻推送, 指定不同标签的用户推送不同的, 推送不同标签用户感兴趣 的 订阅了娱乐的推送娱乐新闻, 订阅了美食的推送美食信息 21/41
应用全部推送 --- --- 接口功能 全部用户推送请求方法 Post 请求路径 /garcia/api/server/push/pushtask/pushtoapp 请求 HOST server-api-push.meizu.com 请求头 备注 签名 =MD5_SIGN 请求 响应码 200 请求 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 pushtype messagejson 消息类型 0 通知栏 1 透传必填 Json 格式, 具体如下必填 通知栏类型 (pushtype=0) "noticebarinfo": "noticebartype": 通知栏样式 (0, " 标准 "),(2, " 安卓原生 ") int 非必填, 值为 0 "title": 推送标题, string 必填, 字数限制 1~32 字符 "content": 推送, string 必填, 字数限制 1~100 字符, "noticeexpandinfo": "noticeexpandtype": 展开方式 (0, " 标准 "),(1, " 文本 ") int 非必填, 值为 0 1 "noticeexpandcontent": 展开, string noticeexpandtype 为文本时, 必填, "clicktypeinfo": "clicktype": 点击动作 (0," 打开应用 "),(1," 打开应用页面 "),(2," 打开 URI 页面 "), (3, " 应用客户端自定义 ") int 非必填, 默认为 0 "url": URI 页面地址, string clicktype 为打开 URI 页面时, 必填 "parameters": JSON 格式 非必填 "activity": 应用页面地址 string clicktype 为打开应用页面时, 格式 pkg.activity eg: com.meizu.upspushdemo.testactivity 必填 "customattribute": 应用客户端自定义 string clicktype 为应用客户端自定义时, 必填, 输入长度为 1000 字节以内, "pushtimeinfo": "offline": 是否进离线消息 (0 否 1 是 [validtime]) int 非必填, 默认值为 1 "validtime": 有效时长 (1 72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 "pushtimetype": 定时推送 (0, " 即时 "),(1, " 定时 ") 必填, 默认 0 "starttime": 任务定时开始时间 (yyyy-mm-dd HH:mm:ss) 非必填 pushtimetype 为 1 必填, "advanceinfo": "suspend": 是否通知栏悬浮窗显示 (1 显示 0 不显示 ) int 非必填, 默认 1 "clearnoticebar": 是否可清除通知栏 (1 可以 0 不可以 ) int 非必填, 默认 1 22/41
"fixdisplay": 是否定时展示 (1 是 0 否 ) int 非必填, 默认 0 "fixstartdisplaytime": 定时展示开始时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "fixenddisplaytime ": 定时展示结束时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "notificationtype": "vibrate": 震动 (0 关闭 1 开启 ), string 非必填, 默认 1 "lights": 闪光 (0 关闭 1 开启 ), string 非必填, 默认 1 "sound": 声音 (0 关闭 1 开启 ), string 非必填, 默认 1, "notifykey": "" // 非必填默认空分组合并推送的 key, 凡是带有此 key 的通知栏消息只会显示最后到达的一条 由数字 ([0-9]), 大小写字母 ([a-za-z]), 下划线 (_) 和中划线 (-) 组成, 长度不大于 8 个字符 透传类型 (pushtype=1) "title": 推送标题, string 必填, 字数显示 1~32 个字符 "content": 推送, string 必填, 字数限制 2000 字节以内 "pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] int 非必填, 默认值为 1 "validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 "pushtimetype": 定时推送 (0, " 即时 "),(1, " 定时 ") 必填, 默认 0 "starttime": 任务定时开始时间 (yyyy-mm-dd HH:mm:ss) 非必填 pushtimetype 为 1 必填, "advanceinfo": "fixspeed": 是否定速推送 0 否 1 是 (fixspeedrate 定速速率 ) 非必填 "fixspeedrate": 定速速率 fixspeed 为 1 时, 必填 "value": "taskid": 20457 ( 任务 Id) "pushtype": 0 ( 推送类型 0 通知栏 1 透传 ) "": 100999 ( 应用 ) 23/41
, "redirect": "" 应用标签推送 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 应用标签推送 Post /garcia/api/server/push/pushtask/pushtotag server-api-push.meizu.com 签名 =MD5_SIGN 请求 pushtype tagnames scope messagejson 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 消息类型 0 通知栏 1 透传必填 推送标签必填多个通过英文逗号分割 标签集合必填 0 并集 1 交集 Json 格式, 具体如下必填 通知栏类型 (pushtype=0) "noticebarinfo": "noticebartype": 通知栏样式 (0, " 标准 "),(2, " 安卓原生 ") int 非必填, 值为 0 "title": 推送标题, 必填, 字数限制 1~32 字符 "content": 推送, 必填, 字数限制 1~100 个字符, "noticeexpandinfo": "noticeexpandtype": 展开方式 (0, " 禁用 "),(1, " 文本 ") 必填, 值为 0 或者 1 24/41
"noticeexpandcontent": 展开, noticeexpandtype 为文本时, 必填, "clicktypeinfo": "clicktype": 点击动作 (0," 打开应用 "),(1," 打开应用页面 "),(2," 打开 URI 页面 "), (3, " 应用客户端自定义 ") int 非必填, 默认为 0 "url": URI 页面地址, string clicktype 为打开 URI 页面时, 必填 "parameters": JSON 格式 非必填 "activity": 应用页面地址 string clicktype 为打开应用页面时, 格式 pkg.activity eg: com.meizu.upspushdemo.testactivity 必填 "customattribute": 应用客户端自定义 string clicktype 为应用客户端自定义时, 必填, 输入长度为 1000 字节以内, "pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] 非必填 "validtime": 有效时长 (0-72 小时内的正整数 ) 必填, 值的范围 0--72 "pushtimetype": 定时推送 (0, " 即时 "),(1, " 定时 ") 必填, 默认 0 "starttime": 任务定时开始时间 (yyyy-mm-dd HH:mm:ss) 非必填 pushtimetype 为 1 必填, "advanceinfo": "fixspeed": 是否定速推送 0 否 1 是 (fixspeedrate 定速速率 ) 非必填, 默认 0 "fixspeedrate": 定速速率 fixspeed 为是时, 必填 "suspend": 是否通知栏悬浮窗显示 1 显示 0 不显示 非必填, 默认 0 "clearnoticebar": 是否可清除通知栏 1 可以 0 不可以 非必填, 默认 1 "fixdisplay": 是否定时展示 (1 是 0 否 ) int 非必填, 默认 0 "fixstartdisplaytime": 定时展示开始时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "fixenddisplaytime ": 定时展示结束时间 (yyyy-mm-dd HH:mm:ss) str 非必填 "notificationtype": "vibrate": 震动 0 关闭 1 开启, 非必填, 默认 1 "lights": 闪光 0 关闭 1 开启, 非必填, 默认 1 "sound": 声音 0 关闭 1 开启 非必填, 默认 1, "notifykey": "" // 非必填默认空分组合并推送的 key, 凡是带有此 key 的通知栏消息只会显示最后到达的一条 由数字 ([0-9]), 大小写字母 ([a-za-z]), 下划线 (_) 和中划线 (-) 组成, 长度不大于 8 个字符 透传类型 (pushtype=1) "title": 推送标题, string 必填, 字数显示 1~32 个字符 "content": 推送, string 必填, 字数限制 2000 字节以内 "pushtimeinfo": "offline": 是否进离线消息 0 否 1 是 [validtime] int 非必填, 默认值为 1 25/41
"validtime": 有效时长 (1-72 小时内的正整数 ) int offline 值为 1 时, 必填, 默认 24 "pushtimetype": 定时推送 (0, " 即时 "),(1, " 定时 ") 必填, 默认 0 "starttime": 任务定时开始时间 (yyyy-mm-dd HH:mm:ss) 非必填 pushtimetype 为 1 必填, "advanceinfo": "fixspeed": 是否定速推送 0 否 1 是 (fixspeedrate 定速速率 ) 非必填 "fixspeedrate": 定速速率 fixspeed 为 1 时, 必填 "value": "taskid": 20457, 任务 Id "pushtype": 0, 推送类型 0 通知栏 1 透传 "": 100999 推送应用 Id, "redirect": "" 取消任务推送 接口功能取消任务推送 ( 只针对全部用户推送待推送和推送中的任务取消 ) 请求方法请求路径请求 HOST 请求头备注请求 Post /garcia/api/server/push/pushtask/cancel server-api-push.meizu.com 签名 =MD5_SIGN 26/41
请求 pushtype taskid 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 消息类型 0 通知栏 1 透传必填 取消任务 ID "value": "result": true 成功 失败情况 : "code": "110032", "message": " 非法的 taskid", "value": "" "code": "500", "message": " 任务已取消 [ 已完成 ], 法取消 ", "value": "" 推送统计 获取任务推送统计 27/41
接口功能请求方法请求路径请求 HOST 请求头备注请求 获取任务推送统 Get /garcia/api/server/push/statistics/gettaskstatistics server-api-push.meizu.com 签名 =MD5_SIGN 请求 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 taskid 任务 ID "value": "taskid": 任务 Id, "targetno": 目标数, "validno": 有效数, "pushedno": 推送数, "acceptno ": 接收数, "displayno": 展示数, "clickno": 点击数 失败情况 : "code": "110032", 28/41
"message": " 非法的 taskid", "value": "" 获取应用推送统计 接口功能获取应用推送统计 ( 最长跨度 30 天 ) 请求方法请求路径请求 HOST 请求头备注请求 Get /garcia/api/server/push/statistics/dailypushstatics server-api-push.meizu.com 签名 =MD5_SIGN 请求 starttime endtime 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 开始日期, 如 20140214 必填 结束日期, 如 20140218 必填 "value": [ "acceptno": 609,// 接收数 "clickno": 30,// 点击数 "date": "2017-05-03",// 推送日期 "displayno": 241,// 展示数 29/41
], "pushedno": 691287,// 推送总数 "targetno": 1741833,// 推送目标数 "validno": 636257// 推送有效数 "acceptno": 228, "clickno": 31, "date": "2017-05-02", "displayno": 39, "pushedno": 228463, "targetno": 879102, "validno": 210962 失败情况 : "code": "500", "message": " 结束时间不能早于开始时间 ", "value": "" "code": "500", "message": " 开始时间和结束时间不能相差 30 天以上 ", "value": "" 高级功能 消息送达与回执支持回执接口 pushid 推送接口 ( 通知栏消息 ) 别名推送接口 ( 通知栏消息 ) 开发者通过设置通知栏消息 json 格式中增加 extra 来指定消息的送达和点击回执规则回执地址请登录推送平台 配置管理 -> 回执管理 注册回执地址 "extra": 30/41
"callback":"http://flyme.callback",//string( 必填字段 ), 第三方接收回执的 Http 接口, 最大长度 128 字节 "callback.param":"param",//string( 可选字段 ), 第三方自定义回执, 最大长度 64 字节 "callback.type":"3 //int( 可选字段 ), 回执类型 (1- 送达回执, 2- 点击回执, 3- 送达与点击回执 ), 默认 3 魅族推送服务器每隔 1s 将已送达或已点击的消息 ID 和对应设备的 pushid 或 alias 通过调用开发者 http 接口传给开发者 ( 每次调用后, 魅族推送服务器会清空这些数据, 下次传给业务方将是新一拨数据 ) 注 : 消息的送达回执只支持向 pushid 或 alias 发送的消息 单个应用注册不同回执地址累计上限不能超过 100 个 回执 key value cb 回执明细如下所述 (Json 数据 ) access_token 回执接口访问令牌 回执明细格式说明 : 外层 key 代表相应的消息 id 和回执类型 (msgid-type), value 是一个 JSONObject, 包含了下面的值 param: 业务上传的自定义值 type: callback 类型 targets: 一批 alias 或者 pushid 集合 "msgid2-1": "param": "param2", "type": 1, "targets": [ "pushid3", "pushid2", "pushid1" ], "msgid1-2": "param": "param1", "type": 2, 31/41
"targets": [ "alias2", "alias", "alias1" ] 订阅服务 获取订阅开关状态 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 获取订阅开关状态 Get /garcia/api/server/message/getregisterswitch api-push.meizu.com 签名 =MD5_SIGN 请求 pushid 如下 订阅 pushid 必填 "value": "bartypeswitch": int 类型通知栏消息开关 0 关 1 开, "directtypeswitch":int 类型透传消息开关 0 关 1 开, "pushid": string 类型注册 push 后唯一标识 32/41
修改订阅开关状态 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 修改订阅开关状态 Post /garcia/api/server/message/changeregisterswitch api-push.meizu.com 签名 =MD5_SIGN 请求 pushid msgtype subswitch 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 int 类型 (0," 状态栏推送 "),(1," 透传消息 "); 必填 开关状态 0 关 1 开必填 "value": "bartypeswitch": int 类型通知栏消息开关 0 关 1 开, "directtypeswitch":int 类型透传消息开关 0 关 1 开, "pushid": string 类型注册 push 后唯一标识 33/41
修改所有开关状态 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 修改所有开关状态 Post /garcia/api/server/message/changeallswitch api-push.meizu.com 签名 =MD5_SIGN 请求 pushid subswitch 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 开关状态 0 关 1 开必填 "value": "bartypeswitch": int 类型通知栏消息开关 0 关 1 开, "directtypeswitch":int 类型透传消息开关 0 关 1 开, "pushid": string 类型注册 push 后唯一标识 34/41
别名订阅 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 别名订阅 Post /garcia/api/server/message/subscribealias api-push.meizu.com 签名 =MD5_SIGN 请求 pushid alias 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 订阅别名 (60 字符限制 ) 必填 "value": "pushid": string 类型注册 push 后唯一标识 alias : string 类型 取消别名订阅 35/41
接口功能请求方法请求路径请求 HOST 请求头备注请求 取消别名订阅 Post /garcia/api/server/message/unsubscribealias api-push.meizu.com 签名 =MD5_SIGN 请求 pushid 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 "value": "pushid": string 类型注册 push 后唯一标识 alias : string 类型 获取订阅别名 接口功能 请求方法 请求路径 获取订阅别名 Get /garcia/api/server/message/getsubalias 36/41
请求 HOST 请求头备注请求 api-push.meizu.com 签名 =MD5_SIGN 请求 pushid 如下 订阅 pushid 必填 "value": "pushid": string 类型注册 push 后唯一标识 alias : string 类型 标签订阅 接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 标签订阅 Post /garcia/api/server/message/subscribetags api-push.meizu.com 签名 =MD5_SIGN 37/41
请求 pushid tags 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 多个标签用英文逗号分割, 单个标签 20 个字符限制,100 个标签数量限制必填 "value": "pushid": "83a9d4ad369d46eabba3e280366474eb", "tags": [ "tagid": 1, "tagname": " 体育 ", "tagid": 2, "tagname": " 科技 " ] 取消标签订阅 接口功能 请求方法 请求路径 取消标签订阅 Post /garcia/api/server/message/unsubscribetags 38/41
请求 HOST 请求头备注请求 api-push.meizu.com 签名 =MD5_SIGN 请求 pushid tags 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 多个标签用英文逗号分割, 单个标签 20 个字符限制,100 个标签数量限制必填 "value": "pushid": "83a9d4ad369d46eabba3e280366474eb", "tags": [ "tagid": 1, "tagname": " 体育 ", "tagid": 2, "tagname": " 科技 " ] 获取订阅标签 39/41
接口功能请求方法请求路径请求 HOST 请求头备注请求 获取订阅标签 Get /garcia/api/server/message/getsubtags api-push.meizu.com 签名 =MD5_SIGN 请求 pushid 如下 订阅 pushid 必填 返回取消后订阅的标签 "value": "pushid": "83a9d4ad369d46eabba3e280366474eb", "tags": [ "tagid": 1, "tagname": " 体育 ", "tagid": 2, "tagname": " 科技 " ] 取消订阅所有标签 40/41
接口功能 请求方法 请求路径 请求 HOST 请求头 备注 请求 取消订阅所有标签 Post /garcia/api/server/message/unsuballtags api-push.meizu.com 签名 =MD5_SIGN 请求 pushid 按 POST 提交表单的标准, 你的任何值字符串是需要 urlencode 编码的 订阅 pushid 必填 "value": true 成功 41/41