調用該接口通過自定義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
}