Chama vários serviços de dispositivo simultaneamente.
Observações de uso
Esta operação aceita apenas chamadas assíncronas.
Ao receber a chamada de serviço, o dispositivo retorna uma resposta ao chamador. Ao configurar o dispositivo, defina a lógica e os parâmetros de resposta. Os formatos de dados desses parâmetros devem obedecer ao protocolo Alink. Exemplo:
{
"id": "58***89",
"code": 200,
"data": {},
"message": "success",
"localizedMsg": "localizedMsg"
}
O parâmetro id especifica o identificador exclusivo da solicitação. O IoT Platform gera esse ID. O dispositivo pode obtê-lo nos parâmetros da solicitação e retorná-lo.
O parâmetro code indica o resultado da chamada de serviço. O valor é um número inteiro.
O parâmetro data representa o resultado da chamada de serviço e é retornado ao chamador. Especifique os parâmetros incluídos nesse resultado. Os dados devem estar no formato JSON.
-
Os parâmetros message e localizedMsg são opcionais.
O Link SDK for C do IoT Platform fornece um exemplo de uso de modelo Thing Specification Language (TSL). Para mais informações, consulte Chamar serviços de dispositivo.
Limites de QPS
Você pode chamar esta API até 10 vezes por segundo por conta.
Usuários RAM de uma conta Alibaba Cloud compartilham a cota dessa conta.
Depuração
Parâmetros de solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| Action | String | Sim | InvokeThingsService | Operação a ser executada. Defina o valor como InvokeThingsService. |
| Args | String | Sim | {"param1":1} | Parâmetro de entrada do serviço. O valor é uma string JSON. Exemplo: Args={"param1": 1}. Para não configurar um parâmetro de entrada, defina o valor como Args={}. Importante Se os dados TSL forem do tipo float ou double, os valores correspondentes devem conter pelo menos uma casa decimal. Exemplos: 10,0 e 11,1. |
| DeviceName.N | RepeatList | Sim | device1 | Nome do dispositivo cujo serviço será chamado. É possível especificar até 100 nomes. |
| Identifier | String | Sim | Set | Identificador do serviço. Para visualizar o identificador do serviço, use um dos métodos a seguir:
Nota Se um serviço chamado testService pertencer a um módulo personalizado chamado testFb, defina este parâmetro como testFb:testService. O módulo personalizado difere do módulo padrão. |
| ProductKey | String | Sim | a1BwAGV**** | ProductKey do produto ao qual o dispositivo pertence. |
| IotInstanceId | String | Não | iot_instc_pu****_c*-v64******** | ID da instância IoT. Visualize o ID da instância na página Overview do console do IoT Platform. Importante
Para mais informações, consulte Visão geral da instância. |
| Qos | Integer | Não | 1 | Nível de qualidade de serviço (QoS) da mensagem. Valores válidos:
|
Além dos parâmetros específicos descritos anteriormente, configure também os parâmetros comuns de solicitação. Para mais informações, consulte Parâmetros comuns.
Parâmetros de resposta
| Parâmetro | Tipo | Exemplo | Descrição |
| Code | String | iot.system.SystemException | Código de erro retornado em caso de falha na chamada. Para mais detalhes, consulte Códigos de erro. |
| ErrorMessage | String | A system exception occurred. | Mensagem de erro retornada em caso de falha na chamada. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | ID da solicitação. |
| Success | Boolean | true | Indica se a chamada foi bem-sucedida. Valores válidos:
|
Exemplos
Exemplos de solicitações
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>
Exemplos de respostas de sucesso
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 erro
Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.