閱讀651 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


推送高級接口__API列表_OpenAPI 1.0_移動推送-阿裏雲

Push

描述

推送高級接口。

請求參數

基礎參數

名稱 類型 是否必須 描述
Action String 操作接口名稱,取值:Push
AppKey Long AppKey信息

推送目標(destination)

名稱 類型 是否必須 描述
Target String 推送目標
  • device:推送給設備
  • account:推送給指定帳號
  • alias:推送給指定別名
  • tag:推送給指定Tag
  • all:推送給全部設備
TargetValue String 根據Target來設定,多個值使用逗號分隔,最多支持100個。
  • Target=device,值如deviceid111,deviceid1111
  • Target=account,值如account111,account222
  • Target=alias,值如alias111,alias222
  • Target=tag,支持單Tag和多Tag,格式請參考標簽格式
  • Target=all,值為all
DeviceType Integer 設備類型,取值範圍為:
  • 0:iOS設備
  • 1:Andriod設備
  • 3:全部類型設備

推送配置(config)

名稱 類型 是否必須 描述
Type Integer
  • 0:表示消息,默認值
  • 1:表示通知
Title String Android消息標題,Android通知標題,iOS消息標題,最長20個字符,中文為1個字符
Body String Android消息內容,Android通知內容,iOS消息內容
Summary String iOS通知內容

Title/Body/Summary 展開說明如下:

屬性推送類型 消息 - iOS 消息 - Android 通知 - iOS 通知 - Android
Title 消息標題,對應消息回調中CCPSysMessagetitle字段 消息標題,對應消息回調中CPushMessagetitle字段 N/A 通知標題,對應通知收到和打開回調的title字段
Body 消息內容,對應消息回調中CCPSysMessagebody字段 消息內容,對應消息回調中CPushMessagecontent字段 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:打開URL
  • 4:無跳轉邏輯
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)

錯誤碼

對於所有接口的通用性錯誤,請參考錯誤代碼表

示例

請求示例

  1. https://cloudpush.aliyuncs.com/?Action=Push
  2. &AppKey=23267207
  3. &Target=device&
  4. &TargetValue=e2ba19de97604f55b165576736477b74%2C92a1da34bdfd4c9692714917ce22d53d
  5. &Title=hello
  6. &Body=hello
  7. &Type=1
  8. &AndroidOpenType=1
  9. &DeviceType=3
  10. &Remind=false
  11. &StoreOffline=false
  12. &<公共請求參數>

返回示例

XML格式

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <PushResponse>
  3. <ResponseId>129376928</ResponseId>
  4. </PushResponse>

JSON格式

  1. {
  2. "ResponseId": "129377184"
  3. }

Java示例代碼

  1. PushRequest pushRequest = new PushRequest();
  2. // 推送目標
  3. pushRequest.setAppKey(appKey);
  4. pushRequest.setTarget("all"); //推送目標: device:推送給設備; account:推送給指定帳號,tag:推送給自定義標簽; all: 推送給全部
  5. pushRequest.setTargetValue("all"); //根據Target來設定,如Target=device, 則對應的值為 設備id1,設備id2. 多個值使用逗號分隔.(帳號與設備有一次最多100個的限製)
  6. pushRequest.setDeviceType(3); // 設備類型deviceType 取值範圍為:0~3. iOS設備: 0; Android設備: 1; 全部: 3, 這是默認值.
  7. // 推送配置
  8. pushRequest.setType(1); // 0:表示消息(默認為0), 1:表示通知
  9. pushRequest.setTitle("Hello"); // 消息的標題
  10. pushRequest.setBody("PushRequest body"); // 消息的內容
  11. pushRequest.setSummary("PushRequest summary"); // 通知的摘要
  12. // 推送配置: iOS
  13. pushRequest.setiOSBadge("5"); // iOS應用圖標右上角角標
  14. pushRequest.setiOSMusic("default"); // iOS通知聲音
  15. pushRequest.setiOSExtParameters("{"k1":"ios","k2":"v2"}"); //自定義的kv結構,開發者擴展用 針對iOS設備
  16. pushRequest.setApnsEnv("DEV");
  17. // pushRequest.setRemind(true); // 當APP不在線時候,是否通過通知提醒
  18. // 推送配置: Android
  19. pushRequest.setAndroidOpenType("3"); // 點擊通知後動作,1:打開應用 2: 打開應用Activity 3:打開 url
  20. pushRequest.setAndroidOpenUrl("https://www.baidu.com"); // Android收到推送後打開對應的url,僅僅當androidOpenType=3有效
  21. pushRequest.setAndroidExtParameters("{"k1":"android","k2":"v2"}"); // 設定android類型設備通知的擴展屬性
  22. // 推送控製
  23. final Date pushDate = new Date(System.currentTimeMillis() + 3600 * 1000); // 一小時後發送, 也可以設置成你指定固定時間
  24. final String pushTime = ParameterHelper.getISO8601Time(pushDate);
  25. pushRequest.setPushTime(pushTime); // 延後推送。可選,如果不設置表示立即推送
  26. pushRequest.setStoreOffline(true); // 離線消息是否保存,若保存, 在推送時候,用戶即使不在線,下一次上線則會收到
  27. final String expireTime = ParameterHelper.getISO8601Time(new Date(System.currentTimeMillis() + 12 * 3600 * 1000)); // 12小時後消息失效, 不會再發送
  28. pushRequest.setExpireTime(expireTime);
  29. PushResponse pushResponse = client.getAcsResponse(pushRequest);
  30. System.out.printf("RequestId: %s, ResponseId: %s, message: %sn",
  31. pushResponse.getRequestId(), pushResponse.getResponseId(), pushResponse.getMessage());
  1. com.aliyuncs.exceptions.ClientException: Push Failed : Push Fail! 排查步驟
  2. 1、檢查SDK的版本號,是否是最新版本?
  3. 2、title是不是大於20個字符了?
  4. 3、是不是有必填參數沒有填寫? 高級接口因為既可以發送iOS也可以發送Android,所以iOS和Android必填參數都需要填寫,參數的完整性校驗之後才會按照參數設置走iOS或者Android的發送流程。

最後更新:2016-12-14 14:30:02

  上一篇:go 推送通知給iOS__API列表_OpenAPI 1.0_移動推送-阿裏雲
  下一篇:go 取消推送任務__API列表_OpenAPI 1.0_移動推送-阿裏雲