調用該介面可設定自訂Topic的操作許可權,及是否支援訊息廣播、是否開啟代理訂閱和是否開啟壓縮或解壓縮。
使用說明
一個自訂Topic廣播訊息時,最多可被1,000個裝置訂閱。若後續需要新增更多裝置訂閱該自訂Topic的廣播訊息,可使用MQTT 5.0版本通訊協定進行通訊,通過設定自訂Topic支援訊息廣播和設定自訂Topic訊息為保留訊息來實現。
具體步驟為:
1. 調用本介面設定指定的自訂Topic(例如:/broadcast/a1Q5XoY****/test)支援訊息廣播,即EnableBroadcast設定為true。
2. 調用Pub介面向該自訂Topic(例如:/broadcast/a1Q5XoY****/test)發布廣播訊息,並設定為保留訊息,即Retained設定為true。
3. 調用SubscribeTopic介面,新增裝置訂閱該自訂Topic(例如:/broadcast/a1Q5XoY****/test),裝置即可收到上一步向該自訂Topic發送的保留訊息。
QPS限制
單個阿里雲帳號調用該介面的每秒請求數(QPS)最大限制為100。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | UpdateTopicConfig | 系統規定參數。取值:UpdateTopicConfig。 |
| ProductKey | String | 是 | a1Q5XoY**** | 要接收訊息的裝置所屬產品的ProductKey。 |
| TopicFullName | String | 是 | /broadcast/a1Q5XoY****/test | 自訂Topic。
重要 對於要廣播訊息的自訂Topic:
|
| IotInstanceId | String | 否 | iot-0pp1n8t**** | 執行個體ID。您可在物聯網平台控制台的執行個體概覽頁面,查看當前執行個體的ID。 重要
執行個體的更多資訊,請參見執行個體概述。 |
| EnableBroadcast | Boolean | 否 | true | 是否支援訊息廣播。
|
| Operation | String | 否 | SUB | 裝置對該Topic類的操作許可權,取值:
|
| EnableProxySubscribe | Boolean | 否 | false | Operation為SUB(訂閱)或ALL(發布和訂閱),可開啟代理訂閱。 取值:
開啟代理訂閱後,裝置與物聯網平台建連時,物聯網平台查詢已開啟代理訂閱的Topic,協助裝置完成訂閱。 |
| Codec | String | 否 | compress | 標準型和尊享型企業版執行個體下,可開啟自訂Topic資料壓縮或解壓縮。 取值:
資料壓縮功能詳細內容,請參見資料壓縮。 |
| Description | String | 否 | submit a test topic | Topic的描述資訊。長度限制為100字元(一個中文漢字佔一個字元)。 |
調用API時,除了本文介紹的該API的特有請求參數,還需傳入公用請求參數。公用請求參數說明,請參見公用參數文檔。
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| Code | String | iot.system.SystemException | 調用失敗時,返回錯誤碼。詳細資料,請參見下文錯誤碼。 |
| Message | String | 系統異常 | 調用失敗時,返回的出錯資訊。 |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | 阿里雲為該請求產生的唯一識別碼。 |
| Success | Boolean | true | 是否調用成功。
|
樣本
請求樣本
https://iot.cn-shanghai.aliyuncs.com/?Action=UpdateTopicConfig
&EnableBroadcast=true
&ProductKey=a1Q5XoY****
&TopicFullName=/broadcast/a1Q5XoY****/test
&IotInstanceId=iot-0pp1n8t****
&<公用請求參數>
正常返回樣本
XML格式
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Code/>
<Success>true</Success>
JSON格式
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Code": "",
"Success": true
}
錯誤碼
|
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
| 400 | iot.message.broker.ParamCheckError | Param check error. | 參數校正錯誤。 |
| 400 | iot.message.broker.ProductCheckError | Product check error. | 產品鑒權失敗。 |
| 400 | iot.message.broker.TopicConfigNumExceed | Topic config num exceed. | Topic數量超限。 |
| 400 | iot.message.broker.SystemError | System error. | 系統異常。 |
| 400 | iot.messagebroker.InvalidPubTopicFormat | The pub topic cannot contain wildcard characters. | 發送主題不能包含萬用字元。 |
| 400 | iot.messagebroker.InvalidOperationWithBroadcast | The operation must be sub for enabling broadcast. | 開啟廣播時操作只能是訂閱。 |
| 400 | iot.messagebroker.InvalidTopicWithBroadcast | Topics for which broadcast is enabled cannot contain wildcard characters. | 開啟廣播的主題不能包含萬用字元。 |
| 400 | iot.messagebroker.InvalidOperationWithProxySubscribe | The operation must be sub or all for enabling proxy subscription. | 開啟代理訂閱的操作只能是訂閱或所有。 |
| 400 | iot.messagebroker.InvalidTopicWithProxySubscribe | Topics for which proxy subscription is enabled cannot contain wildcard characters. | 開啟代理訂閱的主題不能包含萬用字元。 |
| 400 | iot.messagebroker.InvalidTopicWithCodec | Topics for which compression and decompression are enabled cannot contain wildcard characters. | 壓縮/解壓縮的主題不能包含萬用字元。 |
| 400 | iot.messagebroker.InvalidInstanceWithCodec | Only Exclusive Enterprise Edition instances support compression and decompression. | 只有尊享型執行個體支援壓縮/解壓縮。 |
| 400 | iot.prod.NotExistedProduct | The specified product does not exist. | 指定的產品不存在。 |
訪問錯誤中心查看更多錯誤碼。