すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:BatchAddThingTopo

最終更新日:Apr 17, 2025

複数のトポロジ関係を一度に確立します。

使用方法

  • 1 回の呼び出しで、最大 10 台のサブデバイスをゲートウェイにアタッチできます。
  • API 操作の呼び出し元は、ゲートウェイの所有者である必要があります。
  • すでにゲートウェイにアタッチされているサブデバイスを指定すると、元のゲートウェイが指定されたゲートウェイに置き換えられます。
  • 指定されたサブデバイスのいずれかがゲートウェイとのトポロジ関係の確立に失敗した場合、システムはロールバックし、指定されたすべてのサブデバイスはゲートウェイとのトポロジ関係の確立に失敗します。
  • この操作を呼び出してサブデバイスとゲートウェイ間のトポロジ関係を確立した後、IoT Platform は /sys/${productKey}/${deviceName}/thing/topo/change トピックを使用して、この操作の結果を含む情報をゲートウェイにプッシュします。詳細については、「トポロジ関係の変更をゲートウェイに通知する」をご参照ください。

QPS 制限

Alibaba Cloud アカウントごとに、1 秒あたり最大 10 回までこの API 操作を呼び出すことができます。

説明 Alibaba Cloud アカウントの RAM ユーザーは、アカウントのクォータを共有します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。 OpenAPI Explorer は、さまざまな SDK の操作のサンプルコードを動的に生成します。

リクエストパラメータ

パラメータタイプ必須説明
ActionStringはいBatchAddThingTopo

実行する操作。値を BatchAddThingTopo に設定します。

GwDeviceNameStringはいgateway

ゲートウェイの名前。

GwProductKeyStringはいa1vL7cp****

ゲートウェイが属するプロダクトのキー。

TopoAddItem.N.DeviceNameStringはいlight

各サブデバイスの名前。

TopoAddItem.N.ProductKeyStringはいa1BwAGV****

サブデバイスが属するプロダクトのキー。

TopoAddItem.N.SignStringはいC1C1606D61884C5F16C9EA6622E5****

サブデバイスの署名。

SignMethod(deviceSecret,content) 関数の結果に Sign パラメータを設定します。

content パラメータを取得するには、Sign パラメータと SignMethod パラメータを除く、サーバーに送信されるすべてのサブデバイスパラメータをアルファベット順にソートします。次に、パラメータと値を順番に連結します。これらのパラメータと値を区切るために連結記号は必要ありません。

たとえば、サブデバイスに次のパラメータを指定するとします。ClientId=868575026974305、DeviceName=868575026974305、ProductKey=a1PB5fp1234、SignMethod=hmacmd5、timestamp=1646277090411、deviceSecret=1234。この場合、署名関数は hmacmd5(1234, clientId868575026974305deviceName868575026974305productKeya1PB5fp1234timestamp1646277090411) で、計算結果は 3BA0DFA4C477B40C007D84D30D6466CC です。

説明 上記の例では、ClientId はサブデバイスのクライアント ID を示します。カスタムクライアント ID を指定できます。

署名値の計算方法の詳細については、「認証用の MQTT パラメータを取得するにはどうすればよいですか。」をご参照ください。署名値は、passwd パラメータの計算値です。

TopoAddItem.N.SignMethodStringはいhmacMd5

署名アルゴリズム。有効な値:hmacSha1hmacSha256hmacMd5Sha256。大文字と小文字は区別されません。

IotInstanceIdStringいいえiot_instc_pu****_c*-v64********

インスタンスの ID。IoT Platform コンソールの 概要 ページで、インスタンスの ID を表示できます。

重要
  • インスタンスに ID がある場合は、このパラメータを指定する必要があります。指定しないと、呼び出しは失敗します。
  • IoT Platform コンソールに 概要 ページまたはインスタンス ID が表示されない場合は、このパラメータを無視します。

詳細については、「概要」をご参照ください。

TopoAddItem.N.TimestampStringいいえ1579335899000

UTC のタイムスタンプ。このパラメータはオプションです。

重要 TopoAddItem.N.Sign パラメータの値にこのパラメータが含まれている場合は、このパラメータを指定する必要があります。
TopoAddItem.N.ClientIdStringいいえa1BwAGV****device1

サブデバイスのクライアント ID。ID は、デバイスのシリアル番号(SN)またはメディアアクセス制御(MAC)アドレスにすることができます。このパラメータはオプションです。

重要 TopoAddItem.N.Sign パラメータの値にこのパラメータが含まれている場合は、このパラメータを指定する必要があります。

上記の操作固有のリクエストパラメータに加えて、この操作を呼び出す際には、共通のリクエストパラメータを指定する必要があります。詳細については、「共通パラメータ」をご参照ください。

レスポンスパラメータ

パラメータタイプ説明
CodeStringiot.system.SystemException

呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。

ErrorMessageStringシステム例外が発生しました。

呼び出しが失敗した場合に返されるエラーメッセージ。

RequestIdStringE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

リクエストの ID。

SuccessBooleantrue

呼び出しが成功したかどうかを示します。

  • true: 呼び出しは成功しました。
  • false: 呼び出しは失敗しました。

リクエストの例

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 エラーセンター をご参照ください。