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

使用说明

  • 单次调用最多可为一个网关添加10个子设备。
  • 接口调用者必须是网关的所有者(Owner)。
  • 如果传入的子设备已存在拓扑关系,则会将子设备原有的网关替换为当前网关。
  • 任意一个子设备与网关的拓扑关系建立失败时,系统回滚,传入的所有子设备与当前网关建立拓扑关系失败。
  • 调用该接口添加网关与子设备的拓扑关系会通过Topic:/sys/${productKey}/${deviceName}/thing/topo/change通知网关。详细说明,请参见通知网关拓扑关系变化

QPS限制

单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。

说明 RAM用户共享阿里云账号配额。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String BatchAddThingTopo

系统规定参数。取值:BatchAddThingTopo。

GwDeviceName String gateway

网关设备的名称。

GwProductKey String a1vL7cp****

网关设备所属的产品的ProductKey。

TopoAddItem.N.DeviceName String light

要接入网关的子设备名称。

TopoAddItem.N.ProductKey String a1BwAGV****

要接入网关的子设备所属的产品ProductKey。

TopoAddItem.N.Sign String 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,您需自定义。

计算签名参数的方法,请参见如何计算签名参数,计算结果passwd(password)为Sign值。

TopoAddItem.N.SignMethod String hmacMd5

签名方法。支持hmacSha1hmacSha256hmacMd5Sha256(大小写不敏感)。

IotInstanceId String iot_instc_pu****_c*-v64********

实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID

注意
  • 若有ID值,必须传入该ID值,否则调用会失败。
  • 若无实例概览页面或ID值,则无需传入。

实例的更多信息,请参见实例概述

TopoAddItem.N.Timestamp String 1579335899000

UTC时间戳。非必选。

注意 如果Sign中包含了该参数,此处必须同时传入对应值。
TopoAddItem.N.ClientId String a1BwAGV****device1

设备端ID,可使用设备的SN码或MAC地址。非必选参数。

注意 如果Sign中包含了该参数,此处必须同时传入对应值。

调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档

返回数据

名称 类型 示例值 描述
Code String iot.system.SystemException

调用失败时,返回的错误码。更多信息,请参见错误码

ErrorMessage String 系统异常

调用失败时,返回的出错信息。

RequestId String E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

阿里云为该请求生成的唯一标识符。

Success Boolean true

表示是否调用成功。

  • 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
}