Invoca varios servicios de dispositivo simultáneamente.
Notas de uso
Esta operación solo se puede invocar de forma asíncrona.
Cuando el dispositivo recibe la invocación del servicio, devuelve una respuesta al solicitante. Al configurar el dispositivo, debe especificar la lógica de respuesta y los parámetros correspondientes. Los formatos de datos de estos parámetros deben cumplir con el protocolo Alink. Ejemplo:
{
"id": "58***89",
"code": 200,
"data": {},
"message": "success",
"localizedMsg": "localizedMsg"
}
El parámetro id especifica el identificador único de la solicitud. IoT Platform genera este ID. El dispositivo puede obtenerlo de los parámetros de la solicitud y devolverlo en la respuesta.
El parámetro code indica el resultado de la invocación del servicio. Su valor es un número entero.
El parámetro data contiene el resultado de la invocación del servicio y se devuelve al solicitante. Puede definir los parámetros incluidos en este resultado. Los datos deben estar en formato JSON.
-
Los parámetros message y localizedMsg son opcionales.
Link SDK for C de IoT Platform incluye un ejemplo sobre cómo utilizar un modelo de Thing Specification Language (TSL). Para más información, consulte Invocar servicios de dispositivo.
Límites de QPS
Puede invocar esta API hasta 10 veces por segundo por cuenta.
Los usuarios RAM de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | InvokeThingsService | La operación que desea ejecutar. Establezca el valor en InvokeThingsService. |
| Args | String | Sí | {"param1":1} | El parámetro de entrada del servicio. El valor es una cadena JSON. Ejemplo: Args={"param1": 1}. Si no desea configurar un parámetro de entrada para el servicio, establezca el valor en Args={}. Importante Si los datos TSL son de tipo float o double, los valores de parámetro correspondientes deben contener como mínimo un decimal. Ejemplos: 10.0 y 11.1. |
| DeviceName.N | RepeatList | Sí | device1 | El nombre del dispositivo cuyo servicio se invoca. Puede especificar hasta 100 nombres de dispositivo. |
| Identifier | String | Sí | Set | El identificador del servicio. Para consultar el identificador del servicio, utilice uno de los siguientes métodos:
Nota Si un servicio llamado testService pertenece a un módulo personalizado denominado testFb, puede establecer este parámetro en testFb:testService. El módulo personalizado no es el módulo predeterminado. |
| ProductKey | String | Sí | a1BwAGV**** | La clave ProductKey del producto al que pertenece el dispositivo. |
| IotInstanceId | String | No | iot_instc_pu****_c*-v64******** | El ID de la instancia de IoT. Puede consultar el ID de la instancia en la página Overview de la consola de IoT Platform. Importante
Para más información, consulte Descripción general de instancias. |
| Qos | Integer | No | 1 | El nivel de calidad de servicio (QoS) del mensaje. Valores válidos:
|
Además de los parámetros de solicitud específicos de la operación mencionados anteriormente, debe configurar los parámetros de solicitud comunes al invocar esta operación. Para más información, consulte Parámetros comunes.
Parámetros de respuesta
| Parámetro | Tipo | Ejemplo | Descripción |
| Code | String | iot.system.SystemException | El código de error devuelto si la invocación falla. Para más información sobre los códigos de error, consulte Códigos de error. |
| ErrorMessage | String | A system exception occurred. | El mensaje de error devuelto si la invocación falla. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | El ID de la solicitud. |
| Success | Boolean | true | Indica si la invocación fue exitosa. Valores válidos:
|
Ejemplos
Solicitudes de ejemplo
https://iot.cn-shanghai.aliyuncs.com/?Action=InvokeThingsService
&Args=%7B%20%20%20%20%20%22walk%22%3A%22a~z%22%2C%20%20%20%20%20%22city%22%3A%22shanghai%22%20%7D
&DeviceName.1=1102andriod02
&DeviceName.2=1102android01
&Identifier=TimeReset
&ProductKey=a1hWjHD****
&<Common request parameters>
Respuestas exitosas de ejemplo
Formato XML
<InvokeThingsServiceResponse>
<RequestId>059C3274-6197-4BEC-95E4-49A076330E57</RequestId>
<Success>true</Success>
</InvokeThingsServiceResponse>
Formato JSON
{
"RequestId": "059C3274-6197-4BEC-95E4-49A076330E57",
"Success": true
}
Códigos de error
Para obtener una lista de códigos de error, consulte Códigos de error del servicio.