全部产品
Search
文档中心

阿里云物联网平台:UpdateTopicConfig

更新时间:Oct 10, 2023

调用该接口可设置自定义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. 指定的产品不存在。

访问错误中心查看更多错误码。