调用该接口向指定设备发送消息。
使用说明
对于MQTT协议(包括云网关和非云网关)和云网关GB/T 32960协议的设备,可调用本接口从服务端下发消息给对应设备。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1,000。
单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | AsyncRRpc | 系统规定参数。取值:AsyncRRpc。 |
DeviceName | String | 是 | device1 | 要接收消息的设备名称。 |
ProductKey | String | 是 | aldfeSe**** | 要接收消息的设备所属产品的ProductKey。 |
MessageContent | String | 是 | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= | 要发送的消息内容。 您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息内容。 说明
物联网平台会先对消息内容进行Base64解码,再将解码后的对应消息发送给设备。设备端无需进行Base64解码。 |
TopicFullName | String | 否 | /a1uZfYb****/A_Vol****/user/update | 发送消息给MQTT协议设备时,需要传入对应设备的自定义Topic。Topic的操作权限必须为订阅或发布和订阅。 发送消息给云网关GB/T 32960协议的设备时,无需传入此参数。 |
ExtInfo | String | 否 | {"commandType": 128} | 发送消息给云网关GB/T 32960协议的设备时,需要传入此参数,标识消息的命令类型,可取值:
云网关GB/T 32960协议的设备接入详情,请参见云网关GB/T 32960协议概述。 |
IotInstanceId | String | 否 | iot-v64******** | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 重要
实例的更多信息,请参见实例概述。 |
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 |
类型 |
示例值 |
描述 |
Code | String | iot.device.InvalidFormattedDeviceName | 调用失败时,返回错误码。详细信息,请参见下文错误码。 |
ErrorMessage | String | 设备名称格式错误。 | 调用失败时,返回的出错信息。 |
MessageId | Long | 889455942124347392 | 成功发送请求消息后,云端生成的消息ID,用于标识该消息。 |
RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | 阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true | 是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=AsyncRRpc
&DeviceName=device1
&MessageContent=dGhpcyBpcyBhbiBleGFtcGxl
&ProductKey=aldfeSe****
&IotInstanceId=iot-v64********
&<公共请求参数>
正常返回示例
XML
格式
<AsyncRRpcResponse>
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Success>true</Success>
<MessageId>889455942124347400</MessageId>
</AsyncRRpcResponse>
JSON
格式
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Success": true,
"MessageId": 889455942124347400
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
400 | iot.prod.NullProductKey | The ProductKey is empty. | 入参产品ID没有赋值。 |
400 | iot.prod.InvalidFormattedProductkey | The ProductKey format is incorrect. | 请求参数ProductKey错误,请修改后重试。 |
400 | iot.device.NullDeviceName | The deviceName is empty. | 空的设备名称。 |
400 | iot.device.InvalidFormattedDeviceName | The deviceName format is incorrect. | 设备名称格式错误。 |
400 | iot.device.InactiveDevice | The device is inactive. | 设备未激活,即物理设备从未连接物联网平台。 |
400 | iot.device.OfflineDevice | The device is offline. | 设备离线。 |
400 | iot.Device.NotExistedDevice | This device does not exist. | 设备不存在或未激活。 |
访问错误中心查看更多错误码。