カスタム Topic を使用してデバイスにメッセージをパブリッシュします。このオペレーションを呼び出して、特定のプロダクトのオンラインデバイスにメッセージをブロードキャストできます。オンラインデバイスは、特定のカスタム Topic をサブスクライブします。
使用上の注意
このオペレーションを呼び出してメッセージをブロードキャストする場合は、次の点に注意してください。
デバイスを設定する場合、Topic を定義するコードを記述する必要があります。 IoT Platform コンソールで Topic を作成する必要はありません。
デフォルトでは、最大 1,000 台のデバイスの Topic をサブスクライブできます。 1,000 台を超えるデバイスのカスタム Topic のブロードキャストメッセージをサブスクライブする場合は、MQTT 5.0 を使用して通信し、カスタム Topic のブロードキャスト機能を有効にして、カスタム Topic のメッセージを保存メッセージとして指定できます。詳細については、「UpdateTopicConfig」をご参照ください。
制限事項
このオペレーションを呼び出して、デバイスのプロパティを設定したり、デバイスサービスを呼び出したりするコマンドを送信することはできません。
デバイスのプロパティを設定するには、SetDeviceProperty オペレーションまたは SetDevicesProperty オペレーションを呼び出します。
デバイスサービスを呼び出すには、InvokeThingService オペレーションまたは InvokeThingsService オペレーションを呼び出します。
QPS 制限
この API オペレーションは、アカウントごとに 1 秒あたり最大 1,600 回呼び出すことができます。
Alibaba Cloud アカウントの RAM ユーザーは、アカウントのクォータを共有します。
デバッグ
リクエストパラメーター
パラメーター | タイプ | 必須 | 例 | 説明 |
Action | String | はい | Pub | 実行するオペレーション。値を Pub に設定します。 |
ProductKey | String | はい | a1Q5XoY**** | メッセージを受信するデバイスが属するプロダクトの ProductKey。 |
MessageContent | String | はい | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= | 公開するメッセージの本文。 メッセージ本文を生成するには、生のメッセージをバイナリデータに変換し、Base64 エンコーディングを実行します。 説明 IoT Platform は Base64 アルゴリズムを使用してデータをデコードし、デコードされたメッセージをデバイスに送信します。このようにして、デバイスは Base64 でエンコードされたデータをデコードする必要はありません。 |
TopicFullName | String | はい | /a1Q5XoY****/device1/user/get | メッセージを受信するデバイスのカスタム Topic。
重要
カスタム Topic をクエリするには、次のいずれかの方法を使用します。
|
IotInstanceId | String | いいえ | iot-cn-0pp1n8t**** | インスタンスの ID。インスタンスの ID概要 は、IoT Platform コンソールの ページで確認できます。 重要
詳細については、IoT インスタンスの 概要 トピックをご参照ください。 |
Qos | Integer | いいえ | 0 | メッセージの QoS(サービス品質)レベル。有効な値:
デフォルト値: 0。 メッセージングの詳細については、「制限」トピックの「デバイス接続」セクションをご参照ください。 |
ResponseTopic | String | いいえ | /a1Q5XoY****/device1/user/update | MQTT 5.0 を使用して通信する場合のリクエスト/レスポンス通信モードでのレスポンストピック。詳細については、「MQTT 5.0」をご参照ください。 |
CorrelationData | String | いいえ | aGVsbG8**** | MQTT 5.0 を使用する場合のリクエスト/レスポンス通信モードでの関連データ。ビジネス要件に基づいてこのパラメーターを設定できます。 メッセージ受信者は、データに基づいてリクエストを処理できます。 説明 関連データをバイナリデータに変換し、Base64 エンコーディングを実行して、文字列タイプの値を生成する必要があります。 |
UserProp.N.Key | String | いいえ | key1 | MQTT 5.0 を使用して通信する場合に指定されるカスタムプロパティキー。 このパラメーターは、UserProp.N.Value パラメーターと一緒に使用する必要があります。 |
UserProp.N.Value | String | いいえ | value1 | MQTT 5.0 を使用して通信する場合に指定されるカスタムプロパティ値。 UserProp.N.Key と一緒にこのパラメーターを使用する必要があります。 |
DeviceName | String | いいえ | device1 | MQTT クラウドゲートウェイの名前。 重要 このパラメーターは、MQTT クラウドゲートウェイにメッセージを送信する場合にのみ必須です。 |
ContentType | String | いいえ | text | MQTT 5.0 を使用して通信する場合のメッセージのコンテンツタイプ。 このパラメーターは、text や plain などの MIME ファイルのタイプを指定します。 |
PayloadFormatIndicator | Integer | いいえ | 1 | MQTT 5.0 を使用して通信する場合のメッセージのペイロード識別子。有効な値:
|
Retained | Boolean | いいえ | true | MQTT 5.0 を使用して通信する場合に、メッセージを保存メッセージとしてラベル付けするかどうかを指定します。
|
MessageExpiryInterval | Long | いいえ | 2 | MQTT 5.0 を使用して通信する場合のメッセージの有効期間。単位: 秒。
|
TopicAlias | Integer | いいえ | 123 | MQTT 5.0 を使用して通信する場合に指定できる Topic エイリアス。 Topic エイリアスは、デバイスと IoT Platform 間の通信トラフィックを削減するのに役立ちます。 重要
Topic エイリアスの詳細については、「MQTT 5.0 機能の Topic エイリアス」をご参照ください。 |
上記のオペレーション固有のリクエストパラメーターに加えて、このオペレーションを呼び出すときは、共通のリクエストパラメーターを設定する必要があります。共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。
レスポンスパラメーター
パラメーター | タイプ | 例 | 説明 |
Code | String | iot.system.SystemException | 呼び出しが失敗した場合に返されるエラーコード。エラーコードの詳細については、「エラーコード」をご参照ください。 |
ErrorMessage | String | システム例外が発生しました。 | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
MessageId | String | 889455942124347329 | メッセージが送信されたときに IoT Platform によって生成されるメッセージ ID。 |
RequestId | String | BB71E443-4447-4024-A000-EDE09922891E | リクエスト ID。 |
Success | Boolean | true | 呼び出しが成功したかどうかを示します。有効な値:
|
例
サンプルリクエスト
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
}エラーコード
エラーコードのリストについては、「サービスエラーコード」をご参照ください。