调用该接口通过自定义Topic向指定设备发布消息。

使用说明

不支持使用Pub接口下发设置属性和调用服务的指令。设置属性,请使用SetDevicePropertySetDevicesProperty;调用服务,请使用InvokeThingServiceInvokeThingsService

QPS限制

单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600。

说明 RAM用户共享阿里云账号配额。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String Pub

系统规定参数。取值:Pub。

MessageContent String eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=

要发送的消息主体。

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

ProductKey String a1Q5XoY****

要接收消息的产品ProductKey

TopicFullName String /a1Q5XoY****/device1/user/get

要接收消息的设备的自定义Topic。

  • 自定义Topic的格式为/${productKey}/${deviceName}/user/${TopicShortName}
  • Topic的操作权限必须为订阅发布和订阅
注意 调用该接口前,设备必须已订阅该Topic且未取消,否则无法接收本次发布的消息。

您可调用QueryProductTopic接口,查询产品下的自定义Topic;在物联网平台控制台产品详情页面的Topic类列表页签下,查询产品下的自定义Topic;在设备详情页面的Topic列表页签下,查看设备已订阅的自定义Topic。

IotInstanceId String iot-cn-0pp1n8t****

实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID

注意
  • 若有ID值,必须传入该ID值,否则调用会失败。
  • 若无ID值,则无需传入。

实例的更多信息,请参见如何获取实例ID

Qos Integer 0

指定消息的发送方式。取值:

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

如果不传入此参数,则使用默认值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成对使用。

调用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://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
  }