Push
描述
推送高级接口。
请求参数
基础参数
推送目标(destination)
推送配置(config)
Title/Body 展开说明如下:
下述配置仅作用于iOS通知任务
下述配置仅作用于Android通知任务
下述配置仅作用于Android辅助弹窗功能
推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送可以启动辅助弹窗功能,启动辅助弹窗功能参考
移动推送辅助通道配置,且需要具备如下条件:
- 集成第三方辅助通道;
- StoreOffline参数设为true;
- 推送通知(无需设置AndroidRemind)或者推送消息并设置AndroidRemind为True;
- 正确设置AndroidPopupActivity、AndroidPopupTitle、AndroidPopupBody参数。
推送控制(push control)
短信融合
响应参数
错误码
示例
请求示例
- [backcolor=transparent]http[backcolor=transparent]:[backcolor=transparent]//cloudpush.aliyuncs.com/?Action=Push
- [backcolor=transparent]&[backcolor=transparent]AppKey[backcolor=transparent]=[backcolor=transparent]23267207
- [backcolor=transparent]&[backcolor=transparent]Target[backcolor=transparent]=[backcolor=transparent]ALL[backcolor=transparent]&
- [backcolor=transparent]&[backcolor=transparent]TargetValue[backcolor=transparent]=[backcolor=transparent]ALL
- [backcolor=transparent]&[backcolor=transparent]Title[backcolor=transparent]=[backcolor=transparent]hello
- [backcolor=transparent]&[backcolor=transparent]Body[backcolor=transparent]=[backcolor=transparent]hello
- [backcolor=transparent]&[backcolor=transparent]PushType[backcolor=transparent]=[backcolor=transparent]MESSAGE
- [backcolor=transparent]&[backcolor=transparent]AndroidOpenType[backcolor=transparent]=[backcolor=transparent]APPLICATION
- [backcolor=transparent]&[backcolor=transparent]DeviceType[backcolor=transparent]=[backcolor=transparent]iOS
- [backcolor=transparent]&[backcolor=transparent]iOSRemind[backcolor=transparent]=[backcolor=transparent]true
- [backcolor=transparent]&[backcolor=transparent]iOSRemindBody[backcolor=transparent]=[backcolor=transparent]"iOS Body"
- [backcolor=transparent]&[backcolor=transparent]StoreOffline[backcolor=transparent]=[backcolor=transparent]false
- [backcolor=transparent]&<公共请求参数>
返回示例
XML格式
- [backcolor=transparent]<?[backcolor=transparent]xml version[backcolor=transparent]=[backcolor=transparent]'1.0'[backcolor=transparent] encoding[backcolor=transparent]=[backcolor=transparent]'UTF-8'[backcolor=transparent]?>
- [backcolor=transparent]<PushResponse>
- [backcolor=transparent] [backcolor=transparent]<RequestId>[backcolor=transparent]9998B3CC-ED9E-4CB3-A8FB-DCC61296BFBC[backcolor=transparent]</RequestId>[backcolor=transparent]
- [backcolor=transparent] [backcolor=transparent]<MessageId>[backcolor=transparent]501029[backcolor=transparent]</MessageId>
- [backcolor=transparent]</PushResponse>
JSON格式
- [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]"RequestId"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"9998B3CC-ED9E-4CB3-A8FB-DCC61296BFBC"[backcolor=transparent],
- [backcolor=transparent] [backcolor=transparent]"MessageId"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"501029"
- [backcolor=transparent]}
Java示例代码
- [backcolor=transparent]PushRequest[backcolor=transparent] pushRequest [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]PushRequest[backcolor=transparent]();
- [backcolor=transparent]// 推送目标
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAppKey[backcolor=transparent]([backcolor=transparent]appKey[backcolor=transparent]);
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setTarget[backcolor=transparent]([backcolor=transparent]"ALL"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//推送目标: DEVICE:推送给设备; ACCOUNT:推送给指定帐号,TAG:推送给自定义标签; ALIAS: 按别名推送; ALL: 全推
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setTargetValue[backcolor=transparent]([backcolor=transparent]"all"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setDeviceType[backcolor=transparent]([backcolor=transparent]"iOS"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 设备类型deviceType, iOS设备: "iOS"; Android设备: "ANDROID"; 全部: "ALL", 这是默认值.
- [backcolor=transparent]// 推送配置
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setPushType[backcolor=transparent]([backcolor=transparent]"MESSAGE"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// MESSAGE:表示消息(默认), NOTICE:表示通知
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setTitle[backcolor=transparent]([backcolor=transparent]"Hello"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 消息的标题
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setBody[backcolor=transparent]([backcolor=transparent]"PushRequest body"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 消息的内容
- [backcolor=transparent]// 推送配置: iOS
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSBadge[backcolor=transparent]([backcolor=transparent]5[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// iOS应用图标右上角角标
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSMusic[backcolor=transparent]([backcolor=transparent]"default"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// iOS通知声音
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSApnsEnv[backcolor=transparent]([backcolor=transparent]"PRODUCT"[backcolor=transparent]);[backcolor=transparent]//iOS的通知是通过APNs中心来发送的,需要填写对应的环境信息。'DEV': 表示开发环境 'PRODUCT': 表示生产环境
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSRemind[backcolor=transparent]([backcolor=transparent]true[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 消息推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次。注意:**离线消息转通知仅适用于`生产环境`**
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSRemindBody[backcolor=transparent]([backcolor=transparent]"PushRequest summary"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// iOS消息转通知时使用的iOS通知内容,仅当iOSApnsEnv=`PRODUCT` && iOSRemind为true时有效
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setIOSExtParameters[backcolor=transparent]([backcolor=transparent]"{\"k1\":\"ios\",\"k2\":\"v2\"}"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//通知的扩展属性(注意 : 该参数要以json map的格式传入,否则会解析出错)
- [backcolor=transparent]// 推送配置: Android
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidOpenType[backcolor=transparent]([backcolor=transparent]"ACTIVITY"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 点击通知后动作 'APPLICATION': 打开应用 'ACTIVITY': 打开应用AndroidActivity 'URL': 打开URL 'NONE': 无跳转
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidNotifyType[backcolor=transparent]([backcolor=transparent]"SOUND"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 通知的提醒方式 ‘VIBRATE': 振动 'SOUND': 声音 'DEFAULT': 声音和振动 'NONE': 不做处理,用户自定义
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidOpenUrl[backcolor=transparent]([backcolor=transparent]"http://www.alibaba.com"[backcolor=transparent]);
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidMusic[backcolor=transparent]([backcolor=transparent]"default"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// Android通知声音
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidActivity[backcolor=transparent]([backcolor=transparent]"com.alibaba.push.PushActivity"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// Android收到推送后打开对应的url,仅当`AndroidOpenType="URL"`有效
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidPopupActivity[backcolor=transparent]([backcolor=transparent]"com.alibaba.push.PopupActivity"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//设置该参数后启动辅助弹窗功能, 此处指定通知点击后跳转的Activity(辅助弹窗的前提条件:1. 集成第三方辅助通道;2. StoreOffline参数设为true)
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidPopupTitle[backcolor=transparent]([backcolor=transparent]"Popup Title"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//设置辅助弹窗通知的标题
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidPopupBody[backcolor=transparent]([backcolor=transparent]"Popup Body"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//设置辅助弹窗通知的内容
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidNotificationBarType[backcolor=transparent]([backcolor=transparent]50[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//Android自定义通知栏样式,取值:1-100
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidNotificationBarPriority[backcolor=transparent]([backcolor=transparent]2[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//Android通知在通知栏展示时排列位置的优先级 -2 -1 0 1 2
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidExtParameters[backcolor=transparent]([backcolor=transparent]"{\"k1\":\"android\",\"k2\":\"v2\"}"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//设定通知的扩展属性。(注意 : 该参数要以 json map 的格式传入,否则会解析出错)
- [backcolor=transparent]// 推送控制
- [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]Date[backcolor=transparent] pushDate [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]Date[backcolor=transparent]([backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]currentTimeMillis[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] [backcolor=transparent]3600[backcolor=transparent] [backcolor=transparent]*[backcolor=transparent] [backcolor=transparent]1000[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//用于定时发送。不设置缺省是立即发送。时间格式按照ISO8601标准表示,并需要使用UTC时间,格式为`YYYY-MM-DDThh:mm:ssZ`。
- [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] pushTime [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]ParameterHelper[backcolor=transparent].[backcolor=transparent]getISO8601Time[backcolor=transparent]([backcolor=transparent]pushDate[backcolor=transparent]);
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setPushTime[backcolor=transparent]([backcolor=transparent]pushTime[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 延后推送。可选,如果不设置表示立即推送
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setStoreOffline[backcolor=transparent]([backcolor=transparent]true[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 离线消息是否保存,若保存, 在推送时候,用户即使不在线,下一次上线则会收到
- [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] expireTime [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]ParameterHelper[backcolor=transparent].[backcolor=transparent]getISO8601Time[backcolor=transparent]([backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]Date[backcolor=transparent]([backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]currentTimeMillis[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] [backcolor=transparent]12[backcolor=transparent] [backcolor=transparent]*[backcolor=transparent] [backcolor=transparent]3600[backcolor=transparent] [backcolor=transparent]*[backcolor=transparent] [backcolor=transparent]1000[backcolor=transparent]));[backcolor=transparent] [backcolor=transparent]// 12小时后消息失效, 不会再发送
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setExpireTime[backcolor=transparent]([backcolor=transparent]expireTime[backcolor=transparent]);
- [backcolor=transparent]// 短信融合通知
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setSmsTemplateName[backcolor=transparent]([backcolor=transparent]"SMS_1234567"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 设置短信模板名
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setSmsSignName[backcolor=transparent]([backcolor=transparent]"测试"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//设置短信签名
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setSmsParams[backcolor=transparent]([backcolor=transparent]"name=Bob&code=123"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 短信模板变量
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setSmsSendPolicy[backcolor=transparent]([backcolor=transparent]0[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 补发短信的策略,0 表示当设备未收到推送时补发
- [backcolor=transparent]pushRequest[backcolor=transparent].[backcolor=transparent]setSmsDelaySecs[backcolor=transparent]([backcolor=transparent]120[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 两分钟未收到触发短信
- [backcolor=transparent]PushResponse[backcolor=transparent] pushResponse [backcolor=transparent]=[backcolor=transparent] client[backcolor=transparent].[backcolor=transparent]getAcsResponse[backcolor=transparent]([backcolor=transparent]pushRequest[backcolor=transparent]);
- [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]out[backcolor=transparent].[backcolor=transparent]printf[backcolor=transparent]([backcolor=transparent]"RequestId: %s, ResponseId: %s, message: %s\n"[backcolor=transparent],
- [backcolor=transparent] pushResponse[backcolor=transparent].[backcolor=transparent]getRequestId[backcolor=transparent](),[backcolor=transparent] pushResponse[backcolor=transparent].[backcolor=transparent]getResponseId[backcolor=transparent](),[backcolor=transparent] pushResponse[backcolor=transparent].[backcolor=transparent]getMessage[backcolor=transparent]());
- [backcolor=transparent]com[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]exceptions[backcolor=transparent].[backcolor=transparent]ClientException[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Push[backcolor=transparent] [backcolor=transparent]Failed[backcolor=transparent] [backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Push[backcolor=transparent] [backcolor=transparent]Fail[backcolor=transparent]![backcolor=transparent] [backcolor=transparent]排查步骤
- [backcolor=transparent]1[backcolor=transparent]、检查[backcolor=transparent]SDK[backcolor=transparent]的版本号是否为最新版本?
- [backcolor=transparent]2[backcolor=transparent]、[backcolor=transparent]title[backcolor=transparent]是不是大于[backcolor=transparent]20[backcolor=transparent]个字符了?
- [backcolor=transparent]3[backcolor=transparent]、是不是有必填参数没有填写?[backcolor=transparent] [backcolor=transparent]高级接口因为既可以发送[backcolor=transparent]iOS[backcolor=transparent]也可以发送[backcolor=transparent]Android[backcolor=transparent],所以[backcolor=transparent]iOS[backcolor=transparent]和[backcolor=transparent]Android[backcolor=transparent]必填参数都需要填写,参数的完整性校验之后才会按照参数设置走[backcolor=transparent]iOS[backcolor=transparent]或者[backcolor=transparent]Android[backcolor=transparent]的发送流程。