執行預定義的持續推送任務。
接口說明
本接口是用于解決 Push 高級推送接口中,無論是按設備推、按賬號推、按別名推,在單次調用中都存在目標個數上限的問題。
-
使用持續推送意味著業務場景是要往大量設備上,發送同一條消息。這時候,應當合理調用持續推送接口,每次調用,聚合一組設備進行推送(目前按設備推、按賬號推、按別名推,單次推送目標個數上限是 1000)。我們會限制在同一個 MessageId 上推送的總次數為 10000 。如確實需要更高限額,請聯系技術支持評估具體場景。
-
使用這個接口前,需要調用 Push 接口,將 Target 設置為 TBD(To Be Determined),填入消息內容,調用獲得該消息在推送系統中的 MessageId。然后,可以基于這個 MessageId,重復調用此接口,指定不同的目標組,將此消息推送到這些目標上。
-
調用 Push 接口設置目標為 TBD 獲得 MessageId 后,這個消息默認會在推送系統保存 24 個小時,過期之前,可以隨時使用本接口進行指定目標推送。過期后不再允許推送。超出總次數上限后不再允許推送。
-
每次調用本接口指定設備時,消息都是立即推出,不支持設置定時推送。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀?。≧ead)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
mpush:ContinuouslyPush | none | *全部資源 * |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
AppKey | long | 是 | AppKey 信息。 | 23267207 |
MessageId | string | 是 | 消息 ID。 調用 Push 接口,設置 Target 為 TBD,調用后獲得的 MessageId。它代表了一個已經保存到推送系統的消息。 | 500131 |
Target | string | 是 | 推送目標:
持續推送只支持這 3 種目標類型。 | DEVICE |
TargetValue | string | 是 | 根據 Target 來設定,多個值使用逗號分隔,超過限制需要分多次推送。
| a692961a92534047ad3625**** |
返回參數
示例
正常返回示例
JSON
格式
{
"MessageId": "9998B3CC-ED9E-4CB3-A8FB-DCC61296BFBC",
"RequestId": "500131"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|
Java 示例代碼
ContinuouslyPushRequest continuouslyPushRequest = new ContinuouslyPushRequest();
continuouslyPushRequest.setAppKey(appKey);
// 設置持續推送的消息 Id
continuouslyPushRequest.setMessageId("500131");
// 指定推送目標
// 可以繼續用同一個`MessageId`,調用此接口指定其它設備,繼續推送
continuouslyPushRequest.setTarget("DEVICE");
continuouslyPushRequest.setTargetValue("a692961a92534047ad362575f31f57b7");
ContinuouslyPushResponse continuouslyPushResponse = client.getAcsResponse(continuouslyPushRequest);
System.out.printf("RequestId: %s, MessageId: %s\n",
continuouslyPushResponse.getRequestId(), continuouslyPushResponse.getMessageId());