Todos los productos
Search
Centro de documentos

IoT Platform:BatchAddThingTopo

Última actualización: Sep 04, 2026

Establece varias relaciones topológicas al mismo tiempo.

Notas de uso

  • Puede vincular hasta 10 subdispositivos a una puerta de enlace en una sola llamada.

  • Quien invoque la operación de la API debe ser el propietario de la puerta de enlace.

  • Si especifica un subdispositivo que ya está vinculado a una puerta de enlace, esta se reemplaza por la puerta de enlace especificada.

  • Si uno de los subdispositivos especificados no logra establecer una relación topológica con la puerta de enlace, el sistema revierte la operación y ninguno de los subdispositivos establece dicha relación.

  • Después de invocar esta operación para establecer relaciones topológicas entre los subdispositivos y la puerta de enlace, IoT Platform utiliza el tema /sys/${productKey}/${deviceName}/thing/topo/change para enviar información a la puerta de enlace, incluido el resultado de la operación. Para obtener más información, consulte Notificar cambios en las relaciones topológicas a las puertas de enlace.

Límites de QPS

Puede invocar esta operación de la API hasta 10 veces por segundo por cuenta de Alibaba Cloud.

Nota

Los usuarios RAM de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.

Depuración

OpenAPI Explorer calcula automáticamente el valor de la firma. Para mayor comodidad, se recomienda invocar esta operación desde OpenAPI Explorer. Esta herramienta genera dinámicamente el código de ejemplo de la operación para diferentes SDK.

Parámetros de solicitud

ParámetroTipoObligatorioEjemploDescripción
ActionStringSíBatchAddThingTopo

La operación que desea ejecutar. Establezca el valor como BatchAddThingTopo.

GwDeviceNameStringSígateway

El nombre de la puerta de enlace.

GwProductKeyStringSía1vL7cp****

La clave del producto al que pertenece la puerta de enlace.

TopoAddItem.N.DeviceNameStringSílight

El nombre de cada subdispositivo.

TopoAddItem.N.ProductKeyStringSía1BwAGV****

La clave del producto al que pertenece el subdispositivo.

TopoAddItem.N.SignStringSíC1C1606D61884C5F16C9EA6622E5****

La firma del subdispositivo.

Establezca el parámetro Sign con el resultado de la función SignMethod(deviceSecret,content).

Para obtener el parámetro content, ordene alfabéticamente todos los parámetros del subdispositivo que se envían al servidor, excepto Sign y SignMethod. Luego, concatene los parámetros y sus valores en secuencia. No se requiere ningún símbolo de concatenación para separar estos parámetros y valores.

Por ejemplo, si desea especificar los siguientes parámetros para un subdispositivo: ClientId=868575026974305, DeviceName=868575026974305, ProductKey=a1PB5fp1234, SignMethod=hmacmd5, timestamp=1646277090411 y deviceSecret=1234. En este caso, la función de firma es hmacmd5(1234, clientId868575026974305deviceName868575026974305productKeya1PB5fp1234timestamp1646277090411) y el resultado del cálculo es 3BA0DFA4C477B40C007D84D30D6466CC.

Nota En el ejemplo anterior, ClientId indica el ID de cliente del subdispositivo. Puede especificar un ID de cliente personalizado.

Para obtener más información sobre cómo calcular el valor de la firma, consulte ¿Cómo obtengo los parámetros MQTT para la autenticación?. El valor de la firma corresponde al valor calculado del parámetro passwd.

TopoAddItem.N.SignMethodStringSíhmacMd5

El algoritmo de firma. Valores válidos: hmacSha1, hmacSha256, hmacMd5 y Sha256. El valor no distingue entre mayúsculas y minúsculas.

IotInstanceIdStringNoiot_instc_pu****_c*-v64********

El ID de la instancia. En la página Overview de la consola de IoT Platform, puede consultar el ID de la instancia.

Importante
  • Si su instancia tiene un ID, debe especificar este parámetro. De lo contrario, la llamada fallará.
  • Si no aparece ninguna página de Overview ni ningún ID de instancia en la consola de IoT Platform, omita este parámetro.

Para obtener más información, consulte Descripción general.

TopoAddItem.N.TimestampStringNo1579335899000

La marca de tiempo en formato UTC. Este parámetro es opcional.

Importante Si este parámetro se incluye en el valor del parámetro TopoAddItem.N.Sign, debe especificarlo obligatoriamente.
TopoAddItem.N.ClientIdStringNoa1BwAGV****device1

El ID de cliente del subdispositivo. El ID puede ser el número de serie (SN) o la dirección de control de acceso al medio (MAC) del dispositivo. Este parámetro es opcional.

Importante Si este parámetro se incluye en el valor del parámetro TopoAddItem.N.Sign, debe especificarlo obligatoriamente.

Además de los parámetros de solicitud específicos de la operación mencionados anteriormente, debe especificar los parámetros de solicitud comunes al invocar esta operación. Para obtener más información, consulte Parámetros comunes.

Parámetros de respuesta

ParámetroTipoEjemploDescripción
CodeStringiot.system.SystemException

El código de error devuelto si la llamada falla. Para obtener más información, consulte Códigos de error.

ErrorMessageStringA system exception occurred.

El mensaje de error devuelto si la llamada falla.

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

El ID de la solicitud.

SuccessBooleantrue

Indica si la llamada fue exitosa.

  • true: La llamada fue exitosa.
  • false: La llamada falló.

Ejemplos

Solicitudes de ejemplo

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
&<Common request parameters>

Respuestas exitosas de ejemplo

Formato XML

<BatchAddThingTopoResponse>
  <RequestId>2E19BDAF-0FD0-4608-9F41-82D230CFEE38</RequestId>
  <Success>true</Success>
</BatchAddThingTopoResponse>

Formato JSON

{
  "RequestId": "2E19BDAF-0FD0-4608-9F41-82D230CFEE38",
  "Success": true
}

Códigos de error

Para consultar la lista de códigos de error, visite el Centro de errores de la API.