複数のトポロジ関係を一度に確立します。
使用方法
- 1 回の呼び出しで、最大 10 台のサブデバイスをゲートウェイにアタッチできます。
- API 操作の呼び出し元は、ゲートウェイの所有者である必要があります。
- すでにゲートウェイにアタッチされているサブデバイスを指定すると、元のゲートウェイが指定されたゲートウェイに置き換えられます。
- 指定されたサブデバイスのいずれかがゲートウェイとのトポロジ関係の確立に失敗した場合、システムはロールバックし、指定されたすべてのサブデバイスはゲートウェイとのトポロジ関係の確立に失敗します。
- この操作を呼び出してサブデバイスとゲートウェイ間のトポロジ関係を確立した後、IoT Platform は
/sys/${productKey}/${deviceName}/thing/topo/changeトピックを使用して、この操作の結果を含む情報をゲートウェイにプッシュします。詳細については、「トポロジ関係の変更をゲートウェイに通知する」をご参照ください。
QPS 制限
Alibaba Cloud アカウントごとに、1 秒あたり最大 10 回までこの API 操作を呼び出すことができます。
デバッグ
リクエストパラメータ
| パラメータ | タイプ | 必須 | 例 | 説明 |
| Action | String | はい | BatchAddThingTopo | 実行する操作。値を BatchAddThingTopo に設定します。 |
| GwDeviceName | String | はい | gateway | ゲートウェイの名前。 |
| GwProductKey | String | はい | a1vL7cp**** | ゲートウェイが属するプロダクトのキー。 |
| TopoAddItem.N.DeviceName | String | はい | light | 各サブデバイスの名前。 |
| TopoAddItem.N.ProductKey | String | はい | a1BwAGV**** | サブデバイスが属するプロダクトのキー。 |
| TopoAddItem.N.Sign | String | はい | C1C1606D61884C5F16C9EA6622E5**** | サブデバイスの署名。 SignMethod(deviceSecret,content) 関数の結果に Sign パラメータを設定します。 content パラメータを取得するには、Sign パラメータと SignMethod パラメータを除く、サーバーに送信されるすべてのサブデバイスパラメータをアルファベット順にソートします。次に、パラメータと値を順番に連結します。これらのパラメータと値を区切るために連結記号は必要ありません。 たとえば、サブデバイスに次のパラメータを指定するとします。ClientId=868575026974305、DeviceName=868575026974305、ProductKey=a1PB5fp1234、SignMethod=hmacmd5、timestamp=1646277090411、deviceSecret=1234。この場合、署名関数は 説明 上記の例では、ClientId はサブデバイスのクライアント ID を示します。カスタムクライアント ID を指定できます。 署名値の計算方法の詳細については、「認証用の MQTT パラメータを取得するにはどうすればよいですか。」をご参照ください。署名値は、passwd パラメータの計算値です。 |
| TopoAddItem.N.SignMethod | String | はい | hmacMd5 | 署名アルゴリズム。有効な値:hmacSha1、hmacSha256、hmacMd5、Sha256。大文字と小文字は区別されません。 |
| IotInstanceId | String | いいえ | iot_instc_pu****_c*-v64******** | インスタンスの ID。IoT Platform コンソールの 概要 ページで、インスタンスの ID を表示できます。 重要
詳細については、「概要」をご参照ください。 |
| TopoAddItem.N.Timestamp | String | いいえ | 1579335899000 | UTC のタイムスタンプ。このパラメータはオプションです。 重要 TopoAddItem.N.Sign パラメータの値にこのパラメータが含まれている場合は、このパラメータを指定する必要があります。 |
| TopoAddItem.N.ClientId | String | いいえ | a1BwAGV****device1 | サブデバイスのクライアント ID。ID は、デバイスのシリアル番号(SN)またはメディアアクセス制御(MAC)アドレスにすることができます。このパラメータはオプションです。 重要 TopoAddItem.N.Sign パラメータの値にこのパラメータが含まれている場合は、このパラメータを指定する必要があります。 |
上記の操作固有のリクエストパラメータに加えて、この操作を呼び出す際には、共通のリクエストパラメータを指定する必要があります。詳細については、「共通パラメータ」をご参照ください。
レスポンスパラメータ
| パラメータ | タイプ | 例 | 説明 |
| Code | String | iot.system.SystemException | 呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。 |
| ErrorMessage | String | システム例外が発生しました。 | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | リクエストの ID。 |
| Success | Boolean | true | 呼び出しが成功したかどうかを示します。
|
例
リクエストの例
https://iot.cn-shanghai.aliyuncs.com/?Action=BatchAddThingTopo
&GwProductKey=a1duisa****
&GwDeviceName=tydhnay16shc6
&TopoAddItem.1.ProductKey=a1rYuVF****
&TopoAddItem.1.DeviceName=SR8FiTu1R9tlUR2V1bmi
&TopoAddItem.1.Sign=dgj1609rD6IUGFCRkJKKdNKAE67h8****
&TopoAddItem.1.SignMethod=hmacMd5
&TopoAddItem.2.ProductKey=a1yrZMH****
&TopoAddItem.2.DeviceName=RkQ8CFtNpDok4BEunymt
&TopoAddItem.2.Sign=C1C1606D61884C5F16C9EA6622E5****
&TopoAddItem.2.SignMethod=hmacMd5
&<共通リクエストパラメータ>成功レスポンスの例
XML 形式
<BatchAddThingTopoResponse>
<RequestId>2E19BDAF-0FD0-4608-9F41-82D230CFEE38</RequestId>
<Success>true</Success>
</BatchAddThingTopoResponse>JSON 形式
{
"RequestId": "2E19BDAF-0FD0-4608-9F41-82D230CFEE38",
"Success": true
}エラーコード
エラーコードのリストについては、API エラーセンター をご参照ください。