全部產品
Search
文件中心

IoT Platform:UpdateTopicConfig

更新時間:Feb 17, 2025

調用該介面可設定自訂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。

說明 RAM使用者共用阿里雲帳號配額。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

請求參數

名稱

類型

是否必選

樣本值

描述

Action String UpdateTopicConfig

系統規定參數。取值:UpdateTopicConfig。

ProductKey String a1Q5XoY****

要接收訊息的裝置所屬產品的ProductKey

TopicFullName String /broadcast/a1Q5XoY****/test

自訂Topic。

  • 對於MQTT雲網關裝置,自訂Topic為裝置的原始自訂Topic。詳細內容,請參見Topic說明
  • 對於非MQTT雲網關裝置,自訂Topic的格式為/broadcast/${productKey}/${自訂欄位}(要廣播訊息的自訂Topic)和/${productKey}/${deviceName}/user/${自訂欄位}。其中${productKey}與請求參數ProductKey值一致,${自訂欄位}為您自訂的任意欄位。
重要 對於要廣播訊息的自訂Topic:
  • Topic是在裝置開發時編碼定義的,無需控制台建立。
  • Topic的操作許可權必須為訂閱發布和訂閱
IotInstanceId String iot-0pp1n8t****

執行個體ID。您可在物聯網平台控制台的執行個體概覽頁面,查看當前執行個體的ID

重要
  • 若有ID值,必須傳入該ID值,否則調用會失敗。
  • 若無ID值,則無需傳入。

執行個體的更多資訊,請參見執行個體概述

EnableBroadcast Boolean true

是否支援訊息廣播。

  • true:是。
  • false:否。
Operation String SUB

裝置對該Topic類的操作許可權,取值:

  • SUB:訂閱。
  • PUB:發布。
  • ALL:發布和訂閱。
EnableProxySubscribe Boolean false

OperationSUB(訂閱)或ALL(發布和訂閱),可開啟代理訂閱。

取值:

  • true:開啟。
  • false:不開啟。

開啟代理訂閱後,裝置與物聯網平台建連時,物聯網平台查詢已開啟代理訂閱的Topic,協助裝置完成訂閱。

Codec String compress

標準型和尊享型企業版執行個體下,可開啟自訂Topic資料壓縮或解壓縮。

取值:

  • compress:壓縮。
  • decompress:解壓縮。

資料壓縮功能詳細內容,請參見資料壓縮

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

是否調用成功。

  • true:調用成功。
  • false:調用失敗。

樣本

請求樣本

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. 指定的產品不存在。

訪問錯誤中心查看更多錯誤碼。