デバイスにメッセージを送信します。
使用上の注意
MQTT ゲートウェイまたは GB/T 32960 ゲートウェイを使用して Message Queuing Telemetry Transport(MQTT)経由で IoT Platform に接続されているデバイスを使用する場合、AsyncRRpc 操作を呼び出して IoT Platform からデバイスにメッセージを送信できます。
QPS 制限
この操作は、アカウントごとに 1 秒あたり最大 1,000 回呼び出すことができます。
Alibaba Cloud アカウントの Resource Access Management (RAM) ユーザーは、アカウントのクォータを共有します。
デバッグ
リクエストパラメータ
|
パラメータ |
タイプ |
必須 |
例 |
説明 |
| Action | String | Yes | AsyncRRpc | 実行する操作。値を AsyncRRpc に設定します。 |
| DeviceName | String | Yes | device1 | メッセージの送信先デバイスの DeviceName。 |
| ProductKey | String | Yes | aldfeSe**** | デバイスが属するプロダクトの ProductKey。 |
| MessageContent | String | Yes | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= | 公開するメッセージの本文。 メッセージ本文を生成するには、生のメッセージをバイナリデータに変換し、Base64 エンコーディングを実行します。 説明
IoT Platform は Base64 アルゴリズムを使用してデータをデコードし、デコードされたメッセージをデバイスに送信します。このようにして、デバイスは Base64 でエンコードされたデータをデコードする必要がありません。 |
| TopicFullName | String | No | /a1uZfYb****/A_Vol****/user/update | デバイスのカスタム Topic の名前。MQTT 経由で接続されているデバイスにメッセージを送信する場合は、このパラメータを指定する必要があります。デバイスには、Topic に対する サブスクライブまたは パブリッシュとサブスクライブの権限が必要です。 GB/T 32960 ゲートウェイを使用して接続されているデバイスにメッセージを送信する場合、このパラメータを指定する必要はありません。 |
| ExtInfo | String | No | {"commandType": 128} | メッセージのコマンドのタイプ。GB/T 32960 ゲートウェイを使用して接続されているデバイスにメッセージを送信する場合は、このパラメータが必要です。有効な値:
GB/T 32960 ゲートウェイを使用してデバイスを IoT Platform に接続する方法の詳細については、「GB/T 32960 ゲートウェイ」をご参照ください。 |
| IotInstanceId | String | No | iot-v64******** | インスタンス ID。インスタンスの ID は、IoT Platform コンソールの 概要ページで確認できます。 重要
詳細については、「概要」をご参照ください。 |
上記の操作固有のリクエストパラメータに加えて、この操作を呼び出すときは、共通のリクエストパラメータを指定する必要があります。詳細については、「共通パラメータ」をご参照ください。
レスポンスパラメータ
パラメータ |
タイプ |
例 |
説明 |
| Code | String | iot.device.InvalidFormattedDeviceName | リクエストが失敗した場合に返されるエラーコード。詳細については、このトピックの「エラーコード」セクションをご参照ください。 |
| ErrorMessage | String | The format of DeviceName is invalid. | リクエストが失敗した場合に返されるエラーメッセージ。 |
| MessageId | Long | 889455942124347392 | メッセージの送信時に IoT Platform によって生成されるメッセージ ID。 |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | リクエスト ID。 |
| Success | Boolean | true | リクエストが成功したかどうかを示します。有効な値:
|
例
リクエストの例
https://iot.cn-shanghai.aliyuncs.com/?Action=AsyncRRpc
&DeviceName=device1
&MessageContent=dGhpcyBpcyBhbiBleGFtcGxl
&ProductKey=aldfeSe****
&IotInstanceId=iot-v64********
&<Common request parameters>
成功レスポンスの例
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
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
| 400 | iot.prod.NullProductKey | The ProductKey is empty. | ProductKey が空です。 |
| 400 | iot.prod.InvalidFormattedProductkey | The ProductKey format is incorrect. | ProductKey パラメータの値が無効です。 |
| 400 | iot.device.NullDeviceName | The deviceName is empty. | DeviceName が空です。 |
| 400 | iot.device.InvalidFormattedDeviceName | The deviceName format is incorrect. | DeviceName の形式が無効です。 |
| 400 | iot.device.InactiveDevice | The device is inactive. | デバイスがアクティブ化されていません。つまり、デバイスが IoT Platform に接続されたことがありません。 |
| 400 | iot.device.OfflineDevice | The device is offline. | デバイスが切断されています。 |
| 400 | iot.Device.NotExistedDevice | This device does not exist. | デバイスが存在しないか、アクティブ化されていません。 |
エラーコードの一覧については、「サービスエラーコード」をご参照ください。