Pub

更新时间:2025-10-10 06:59:58下载pdf

调用该接口通过自定义Topic向设备发布消息,支持向指定产品下订阅了指定自定义Topic的在线设备发送广播消息。

使用说明

发送广播消息时:

  • 相关Topic是在设备开发时编码定义的,无需控制台创建。

  • 一个Topic默认最多可被1,000个设备订阅。

使用限制

该接口不支持下发设置属性和调用服务的指令。

请求参数

名称 类型 是否必选 示例值 描述
Action String Pub 系统规定参数。取值:Pub。
ProductKey String a1Q5XoY**** 要接收消息的设备所属产品的ProductKey
MessageContent String eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= 要发送的消息内容。

您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息内容。

说明

物联网平台会先对消息内容进行Base64解码,再将解码后的对应消息发送给设备。设备端无需进行Base64解码。
TopicFullName String /a1Q5XoY****/device1/user/get 要接收消息的设备的自定义Topic。

- 对于开源MQTT托管形态设备和MQTT云网关设备,自定义Topic为设备的原始自定义Topic。

- 对于非开源MQTT托管形态设备和非MQTT云网关设备,自定义Topic的格式支持为:

- /${productKey}/${deviceName}/user/${TopicShortName}:发送消息到指定ProductKey的指定设备。

- /broadcast/${productKey}/${自定义字段}:发送消息到指定ProductKey下已订阅该Topic的在线设备。${productKey}是要接收广播消息的具体产品的ProductKey${自定义字段}为您自定义的任意字段。


重要

- Topic的操作权限必须为订阅发布和订阅

- 调用该接口前,设备必须已订阅该Topic且未取消,否则无法接收本次发布的消息。


查询自定义Topic方法:

- 调用QueryProductTopic接口,查询产品下的自定义Topic。

- 在物联网平台控制台产品详情页面的Topic类列表页签下,查询产品下的自定义Topic。

- 在物联网平台控制台设备详情页面的Topic列表页签下,查看设备已订阅的自定义Topic。
Qos Integer 0 指定消息的发送方式。取值:

- 0:最多发送一次。

- 1:最少发送一次。如果QoS=1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。


如果不传入此参数,则使用默认值0
DeviceName String device1 MQTT云网关设备的名称。

重要

仅当需要向指定MQTT云网关设备发布消息时,需要传入该参数。

调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数

返回数据

名称 类型 示例值 描述
Code String iot.system.SystemException 调用失败时,返回的错误码。更多信息,请参见错误码
ErrorMessage String 系统异常 调用失败时,返回的出错信息。
MessageId String 889455942124347329 成功发送消息后,云端生成的消息ID,用于标识该消息。
RequestId String BB71E443-4447-4024-A000-EDE09922891E 阿里云为该请求生成的唯一标识符。
Success Boolean true 是否调用成功。

- true:调用成功。

- false:调用失败。

示例

请求示例

https://si-d6e******48958054.tuyacloud.com:8686/?Action=Pub
&ProductKey=a1Q5XoY****
&TopicFullName=/a1Q5XoY****/device1/user/get
&MessageContent=eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=
&Qos=0
&<公共请求参数>

正常返回示例

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
  }