調用該介面通過自訂Topic向裝置發布訊息,支援向指定產品下訂閱了指定自訂Topic的線上裝置發送廣播訊息。
使用說明
發送廣播訊息時:
- 相關Topic是在裝置開發時編碼定義的,無需控制台建立。
- 一個Topic預設最多可被1,000個裝置訂閱。若後續需要新增更多裝置訂閱自訂Topic的廣播訊息,可使用MQTT 5.0版本通訊協定進行通訊,通過設定自訂Topic支援保留訊息廣播和設定自訂Topic訊息為保留訊息來實現。使用說明,請參見UpdateTopicConfig。
使用限制
該介面不支援下發設定屬性和調用服務的指令。
- 設定屬性,請使用SetDeviceProperty或SetDevicesProperty。
- 調用服務,請使用InvokeThingService或InvokeThingsService。
QPS限制
單個阿里雲帳號調用該介面的每秒請求數(QPS)最大限制為1600。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | Pub | 系統規定參數。取值:Pub。 |
| ProductKey | String | 是 | a1Q5XoY**** | 要接收訊息的裝置所屬產品的ProductKey。 |
| MessageContent | String | 是 | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= | 要發送的訊息內容。 您需要將訊息原文轉換成位元據,並進行Base64編碼,從而產生訊息內容。 說明 物聯網平台會先對訊息內容進行Base64解碼,再將解碼後的對應訊息發送給裝置。裝置端無需進行Base64解碼。 |
| TopicFullName | String | 是 | /a1Q5XoY****/device1/user/get | 要接收訊息的裝置的自訂Topic。
重要
查詢自訂Topic方法:
|
| IotInstanceId | String | 否 | iot-cn-0pp1n8t**** | 執行個體ID。您可在物聯網平台控制台的執行個體概覽頁面,查看當前執行個體的ID。 重要
執行個體的更多資訊,請參見執行個體概述。 |
| Qos | Integer | 否 | 0 | 指定訊息的發送方式。取值:
如果不傳入此參數,則使用預設值0。 通訊訊息的更多使用說明,請參見使用限制的串連通訊。 |
| ResponseTopic | String | 否 | /a1Q5XoY****/device1/user/update | 使用MQTT 5.0版本通訊協定時,請求和響應模式中的響應主題,即通訊的Topic。更多訊息,請參見MQTT 5.0協議說明。 |
| CorrelationData | String | 否 | aGVsbG8**** | 使用MQTT 5.0版本通訊協定時,請求和響應模式中的相關資料,使用者可自訂。 訊息接收方可根據相關資料處理請求。 說明 您需要將相關資料轉換為位元據,並進行Base64編碼,從而產生String類型資料。 |
| UserProp.N.Key | String | 否 | key1 | 使用MQTT 5.0版本通訊協定時,使用者自訂屬性的Key。 需要與UserProp.N.Value成對使用。 |
| UserProp.N.Value | String | 否 | value1 | 使用MQTT 5.0版本通訊協定時,使用者自訂屬性的Value。 需要與UserProp.N.Key成對使用。 |
| DeviceName | String | 否 | device1 | MQTT雲網關裝置的名稱。 重要
僅當需要向指定MQTT雲網關裝置發布訊息時,需要傳入該參數。 |
| ContentType | String | 否 | text | 使用MQTT 5.0版本通訊協定時,發布訊息的內容類型。 應用於存放MIME類型檔案,例如,文字檔類型:text、plain。 |
| PayloadFormatIndicator | Integer | 否 | 1 | 使用MQTT 5.0版本通訊協定時,發布訊息的有效載荷標識,可取值:
|
| Retained | Boolean | 否 | true | 使用MQTT 5.0版本通訊協定時,該欄位用於標識是否是保留訊息。
|
| MessageExpiryInterval | Long | 否 | 2 | 使用MQTT 5.0版本通訊協定時,訊息的到期時間,單位是秒。
|
| TopicAlias | Integer | 否 | 123 | 使用MQTT 5.0版本通訊協定時,可設定主題別名,用於減少裝置端和雲端的通訊流量。 重要
主題別名的更多使用說明,請參見MQTT 5.0特性的主題別名。 |
調用API時,除了本文介紹的該API的特有請求參數,還需傳入公用請求參數。公用請求參數說明,請參見公用參數文檔。
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| Code | String | iot.system.SystemException | 調用失敗時,返回的錯誤碼。更多資訊,請參見錯誤碼。 |
| ErrorMessage | String | 系統異常 | 調用失敗時,返回的出錯資訊。 |
| MessageId | String | 889455942124347329 | 成功發送訊息後,雲端產生的訊息ID,用於標識該訊息。 |
| RequestId | String | BB71E443-4447-4024-A000-EDE09922891E | 阿里雲為該請求產生的唯一識別碼。 |
| Success | Boolean | true | 是否調用成功。
|
樣本
請求樣本
https://iot.cn-shanghai.aliyuncs.com/?Action=Pub
&ProductKey=a1Q5XoY****
&TopicFullName=/a1Q5XoY****/device1/user/get
&MessageContent=eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=
&Qos=0
&ResponseTopic=/a1Q5XoY****/device1/user/update
&CorrelationData=aGVsbG8%3D****
&UserProp.1.Key=k1&UserProp.1.Value=v1
&<公用請求參數>
正常返回樣本
XML格式
<PubResponse>
<RequestId>BB71E443-4447-4024-A000-EDE09922891E</RequestId>
<Success>true</Success>
<MessageId>889455942124347329</MessageId>
</PubResponse>
JSON格式
{
"RequestId":"BB71E443-4447-4024-A000-EDE09922891E",
"Success":true,
"MessageId":889455942124347329
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。