调用该接口批量添加设备拓扑关系。

限制说明

  • 单次调用最多可为一个网关添加10个子设备。
  • 接口调用者必须是网关的所有者(Owner)。
  • 单个阿里云账号调用该接口的QPS限流为5。子账号共享主账号配额。
  • 如果传入的子设备已存在拓扑关系,则会将子设备原有的网关替换为当前网关。
  • 任意一个子设备与网关的拓扑关系建立失败时,系统回滚,传入的所有子设备与当前网关建立拓扑关系失败。

请求参数

名称 类型 是否必需 描述
Action String 要执行的操作。取值:BatchAddThingTopo
GwProductKey String 网关设备所属的产品的ProductKey。
GwDeviceName String 网关设备的名称。
TopoAddItemList List<TopoAddItem> 要添加拓扑关系的子设备信息列表,详情见下表TopoAddItem。
InstanceId String 公共实例不传此参数;您购买的实例需传入实例ID。
公共请求参数 - 请参见公共参数
表 1. TopoAddItem
参数 类型 是否必需 描述
ProductKey String 子设备所属的产品Key。
DeviceName String 子设备名称。
Sign String 添加拓扑关系的签名。

根据签名计算方式SignMethod(deviceSecret,content),计算出的结果作为Sign的取值。

其中,content是将所有提交给服务器的子设备参数(SignSignMethod除外),按照英文字母升序,依次排序拼接(无拼接符号)的结果。

例如传入的设备参数为ClientId=868575026974305DeviceName=868575026974305ProductKey=a1PB5fp1234SignMethod=hmacmd5,且deviceSecret=1234,那么签名计算为hmacmd5(1234, clientId868575026974305deviceName868575026974305productKeya1PB5fpX1234);签名计算结果为C1C1606D61884C5F16C9EA6622E5****

SignMethod String 签名方法。支持hmacSha1、hmacSha256、hmacMd5和Sha256(大小写不敏感)。
Timestamp String UTC时间戳。非必选。如果传入该参数,则需包含到签名计算中。
ClientId String 设备ClientId,可使用设备的SN码或MAC地址。非必选。如果传入该参数,则需包含到签名计算中。

返回参数

名称 类型 描述
RequestId String 阿里云为该请求生成的唯一标识符。
Success Boolean 表示是否调用成功。true表示调用成功,false表示调用失败。
ErrorMessage String 调用失败时,返回的出错信息。
Code String 返回错误码,请参见错误码

示例

请求示例

https://iot.cn-shanghai.aliyuncs.com/?Action=BatchAddThingTopo
&GwProductKey=a1duisa****
&GwDeviceName=tydhnay16shc6
&TopoAddItem.1.ProductKey=a1rYuVF****
&TopoAddItem.1.DeviceName=SR8FiTu1R9tlUR2V1bmi
&TopoAddItem.1.Sign=1asded9c****
&TopoAddItem.1.SignMethod=hmacMd5
&TopoAddItem.2.ProductKey=a1yrZMH****
&TopoAddItem.2.DeviceName=RkQ8CFtNpDok4BEunymt
&TopoAddItem.2.Sign=438ac4de****
&TopoAddItem.2.SignMethod=hmacMd5
&公共请求参数

返回示例

  • JSON格式
    {
      "RequestId": "2E19BDAF-0FD0-4608-9F41-82D230CFEE38",
      "Success": true
    }
  • XML格式
    <?xml version="1.0" encoding="UTF-8"?>
     <BatchAddThingTopoResponse>
          <RequestId>2E19BDAF-0FD0-4608-9F41-82D230CFEE38</RequestId>
          <Success>true</Success>
      </BatchAddThingTopoResponse>