651
阿裏雲
技術社區[雲棲]
推送高級接口__API列表_OpenAPI 1.0_移動推送-阿裏雲
Push
描述
推送高級接口。
請求參數
基礎參數
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| Action |
String |
是 |
操作接口名稱,取值:Push |
| AppKey |
Long |
是 |
AppKey信息 |
推送目標(destination)
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| Target |
String |
是 |
推送目標device:推送給設備account:推送給指定帳號alias:推送給指定別名tag:推送給指定Tagall:推送給全部設備
|
| TargetValue |
String |
是 |
根據Target來設定,多個值使用逗號分隔,最多支持100個。Target=device,值如deviceid111,deviceid1111Target=account,值如account111,account222Target=alias,值如alias111,alias222Target=tag,支持單Tag和多Tag,格式請參考標簽格式Target=all,值為all
|
| DeviceType |
Integer |
是 |
設備類型,取值範圍為:0:iOS設備1:Andriod設備3:全部類型設備
|
推送配置(config)
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| Type |
Integer |
是 |
|
| Title |
String |
是 |
Android消息標題,Android通知標題,iOS消息標題,最長20個字符,中文為1個字符 |
| Body |
String |
是 |
Android消息內容,Android通知內容,iOS消息內容 |
| Summary |
String |
否 |
iOS通知內容 |
Title/Body/Summary 展開說明如下:
| 屬性推送類型 |
消息 - iOS |
消息 - Android |
通知 - iOS |
通知 - Android |
|---|
Title |
消息標題,對應消息回調中CCPSysMessage的title字段 |
消息標題,對應消息回調中CPushMessage的title字段 |
N/A |
通知標題,對應通知收到和打開回調的title字段 |
Body |
消息內容,對應消息回調中CCPSysMessage的body字段 |
消息內容,對應消息回調中CPushMessage的content字段 |
N/A |
通知內容,對應通知收到和通知打開回調的summary字段 |
Summary |
N/A |
N/A |
通知內容 |
N/A |
下述配置僅作用於iOS通知任務
- 【注意】若沒有進行iOS 10通知相關配置(iOSTitle / iOSSubTitle / iOSMutableContent / iOSNotificationCategory),通知payload保持老版本不變,已經保證對老版本payload兼容性;若進行iOS 10通知相關配置,請確保客戶端業務邏輯對payload相關字段處理的兼容性;iOS通知payload字段參考iOS 10通知適配-第3節。
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| iOSMusic |
String |
否 |
iOS通知聲音,不設置該參數播放係統默認聲音,設置空字符(“”)不播放聲音 |
| iOSBadge |
String |
否 |
iOS應用圖標右上角角標 |
| iOSTitle |
String |
否 |
iOS通知標題(iOS 10+通知顯示標題,[ iOS 8.2 <= iOS係統 < iOS 10 ]替換通知應用名稱) |
| iOSSubtitle |
String |
否 |
iOS通知副標題(iOS 10+) |
| iOSMutableContent |
Boolean |
否 |
是否使能iOS通知擴展處理(iOS 10+) |
| iOSNotificationCategory |
String |
否 |
設定iOS通知Category(iOS 10+) |
| iOSExtParameters |
String |
否 |
iOS通知的擴展屬性,iOS 10+ 可以在此指定富媒體推送通知的資源Url: {“attachment”: “https://xxxx.xxx/notification_pic.png"} (注意 : 該參數要以json map的格式傳入,否則會解析出錯) |
| ApnsEnv |
String |
否 |
iOS的通知是通過APNs中心來發送的,需要填寫對應的環境信息。DEV:表示開發環境PRODUCT:表示生產環境(默認值)
|
下述配置僅作用於iOS消息
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| Remind |
Boolean |
否 |
推送時設備不在線(即與移動推送的服務端的長連接通道不通),則這條推送會做為通知,通過蘋果的APNs通道送達一次(發送通知時,Summary為通知的內容,Message不起作用)。注意:離線消息轉通知僅適用於生產環境 |
下述配置僅作用於Android通知任務
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| AndroidMusic |
String |
否 |
Android通知聲音(保留參數,當前暫不起作用) |
| AndroidOpenType |
String |
否 |
點擊通知後動作1:打開應用-
2:打開應用Activity 3:打開URL4:無跳轉邏輯
|
| AndroidActivity |
String |
否 |
設定通知打開的activity,僅當AndroidOpenType=2有效,如:com.alibaba.cloudpushdemo.bizactivity |
| XiaomiActivity |
String |
否 |
設置該參數後啟動小米托管彈窗功能, 此處指定通知點擊後跳轉的Activity(托管彈窗的前提條件:1. 集成小米輔助通道;2. StoreOffline參數設為true)注意: 小米輔助通道對托管彈窗傳輸有長度限製,title < 16字符(中英文算一個字符),Body < 128字符(中英文算一個字符) |
| AndroidOpenUrl |
String |
否 |
Android收到推送後打開對應的url,僅當AndroidOpenType=3有效 |
| AndroidExtParameters |
String |
否 |
設定通知的擴展屬性。(目前android通知的提醒方式的設置在該參數裏麵:”_NOTIFY_TYPE_=0123”,0:靜音,1:振動,2:聲音,3:聲音和振動。android自定義通知樣式的設置也在該參數裏麵:”_NOTIFICATION_BAR_STYLE_“=123..100)(注意 : 該參數要以json map的格式傳入,否則會解析出錯) |
推送控製(push control)
| 名稱 |
類型 |
是否必須 |
描述 |
|---|
| PushTime |
String |
否 |
用於定時發送。不設置缺省是立即發送。時間格式按照ISO8601標準表示,並需要使用UTC時間,格式為YYYY-MM-DDThh:mm:ssZ。 |
| StoreOffline |
Boolean |
否 |
離線消息/通知是否保存。若保存,在推送時候用戶不在線,在過期時間(ExpireTime)內用戶上線時會被再次發送。StoreOffline默認設置為false,ExpireTime默認為72小時。(iOS通知走Apns鏈路,不受StoreOffline影響) |
| ExpireTime |
String |
否 |
離線消息/通知的過期時間,和StoreOffline配合使用,過期則不會再被發送,最長保存72小時。默認為72小時。時間格式按照ISO8601標準表示,並需要使用UTC時間,格式為YYYY-MM-DDThh:mm:ssZ,過期時間不能小於當前時間或者定時發送時間加上3秒(ExpireTime > PushTime + 3秒),3秒是為了冗餘網絡和係統延遲造成的誤差。 |
響應參數
| 名稱 |
類型 |
描述 |
|---|
| ResponseId |
String |
請求返回ID(如需排查問題可告訴工作人員該ID) |
錯誤碼
對於所有接口的通用性錯誤,請參考錯誤代碼表。
示例
請求示例
https://cloudpush.aliyuncs.com/?Action=Push&AppKey=23267207&Target=device&&TargetValue=e2ba19de97604f55b165576736477b74%2C92a1da34bdfd4c9692714917ce22d53d&Title=hello&Body=hello&Type=1&AndroidOpenType=1&DeviceType=3&Remind=false&StoreOffline=false&<公共請求參數>
返回示例
XML格式
<?xml version='1.0' encoding='UTF-8'?><PushResponse> <ResponseId>129376928</ResponseId></PushResponse>
JSON格式
{ "ResponseId": "129377184"}
Java示例代碼
PushRequest pushRequest = new PushRequest();// 推送目標pushRequest.setAppKey(appKey);pushRequest.setTarget("all"); //推送目標: device:推送給設備; account:推送給指定帳號,tag:推送給自定義標簽; all: 推送給全部pushRequest.setTargetValue("all"); //根據Target來設定,如Target=device, 則對應的值為 設備id1,設備id2. 多個值使用逗號分隔.(帳號與設備有一次最多100個的限製)pushRequest.setDeviceType(3); // 設備類型deviceType 取值範圍為:0~3. iOS設備: 0; Android設備: 1; 全部: 3, 這是默認值.// 推送配置pushRequest.setType(1); // 0:表示消息(默認為0), 1:表示通知pushRequest.setTitle("Hello"); // 消息的標題pushRequest.setBody("PushRequest body"); // 消息的內容pushRequest.setSummary("PushRequest summary"); // 通知的摘要// 推送配置: iOSpushRequest.setiOSBadge("5"); // iOS應用圖標右上角角標pushRequest.setiOSMusic("default"); // iOS通知聲音pushRequest.setiOSExtParameters("{"k1":"ios","k2":"v2"}"); //自定義的kv結構,開發者擴展用 針對iOS設備pushRequest.setApnsEnv("DEV");// pushRequest.setRemind(true); // 當APP不在線時候,是否通過通知提醒// 推送配置: AndroidpushRequest.setAndroidOpenType("3"); // 點擊通知後動作,1:打開應用 2: 打開應用Activity 3:打開 urlpushRequest.setAndroidOpenUrl("https://www.baidu.com"); // Android收到推送後打開對應的url,僅僅當androidOpenType=3有效pushRequest.setAndroidExtParameters("{"k1":"android","k2":"v2"}"); // 設定android類型設備通知的擴展屬性// 推送控製final Date pushDate = new Date(System.currentTimeMillis() + 3600 * 1000); // 一小時後發送, 也可以設置成你指定固定時間final String pushTime = ParameterHelper.getISO8601Time(pushDate);pushRequest.setPushTime(pushTime); // 延後推送。可選,如果不設置表示立即推送pushRequest.setStoreOffline(true); // 離線消息是否保存,若保存, 在推送時候,用戶即使不在線,下一次上線則會收到final String expireTime = ParameterHelper.getISO8601Time(new Date(System.currentTimeMillis() + 12 * 3600 * 1000)); // 12小時後消息失效, 不會再發送pushRequest.setExpireTime(expireTime);PushResponse pushResponse = client.getAcsResponse(pushRequest);System.out.printf("RequestId: %s, ResponseId: %s, message: %sn", pushResponse.getRequestId(), pushResponse.getResponseId(), pushResponse.getMessage());
com.aliyuncs.exceptions.ClientException: Push Failed : Push Fail! 排查步驟1、檢查SDK的版本號,是否是最新版本?2、title是不是大於20個字符了?3、是不是有必填參數沒有填寫? 高級接口因為既可以發送iOS也可以發送Android,所以iOS和Android必填參數都需要填寫,參數的完整性校驗之後才會按照參數設置走iOS或者Android的發送流程。
最後更新:2016-12-14 14:30:02