Envia uma mensagem assíncrona para um dispositivo especificado.
Observações de uso
Use esta operação para enviar uma mensagem do IoT Platform a um dispositivo conectado via MQTT (incluindo gateways MQTT) ou por meio de um gateway GB/T 32960.
Limites de QPS
É possível chamar esta operação até 1.000 vezes por segundo por conta.
Os usuários do Resource Access Management (RAM) de uma conta Alibaba Cloud compartilham a cota dessa conta.
Depuração
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
| Action | String | Sim | AsyncRRpc |
Operação a ser executada. Defina o valor como AsyncRRpc. |
| DeviceName | String | Sim | device1 |
DeviceName do dispositivo de destino da mensagem. |
| ProductKey | String | Sim | aldfeSe**** |
ProductKey do produto ao qual o dispositivo pertence. |
| MessageContent | String | Sim | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= |
Corpo da mensagem a ser publicada. Converta a mensagem original em dados binários e codifique-os em Base64. Nota
O IoT Platform decodifica os dados em Base64 antes de enviar a mensagem ao dispositivo. Portanto, o dispositivo não precisa decodificar o conteúdo em Base64. |
| TopicFullName | String | Não | /a1uZfYb****/A_Vol****/user/atualize |
Tópico personalizado do dispositivo. Obrigatório para envio de mensagens a dispositivos conectados via MQTT. O dispositivo deve ter permissões de Subscribe ou Publish and Subscribe no tópico. Não obrigatório para dispositivos conectados por meio de um gateway GB/T 32960. |
| ExtInfo | String | Não | {"commandType": 128} |
Tipo de comando na mensagem. Obrigatório para envio de mensagens a dispositivos conectados via gateway GB/T 32960. Valores válidos:
Para mais informações sobre conexão de dispositivos via gateway GB/T 32960, consulte Gateways GB/T 32960. |
| IotInstanceId | String | Não | iot-v64******** |
ID da instância. Consulte o ID na página Overview do console do IoT Platform. Importante
Para mais detalhes, consulte Visão geral. |
Além dos parâmetros específicos da operação listados acima, especifique 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.device.InvalidFormattedDeviceName |
Código de erro retornado se a solicitação falhar. Para mais informações, consulte a seção Códigos de erro. |
| ErrorMessage | String | The format of DeviceName is invalid. |
Mensagem de erro retornada se a solicitação falhar. |
| MessageId | Long | 889455942124347392 |
ID da mensagem gerado pelo IoT Platform durante o envio. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 |
ID da solicitação. |
| Success | Boolean | true |
Indica se a solicitação foi bem-sucedida. Valores válidos:
|
Exemplos
Exemplos de solicitações
https://iot.cn-shanghai.aliyuncs.com/?Action=AsyncRRpc
&DeviceName=device1
&MessageContent=dGhpcyBpcyBhbiBleGFtcGxl
&ProductKey=aldfeSe****
&IotInstanceId=iot-v64********
&<Common request parameters>
Exemplos de respostas de sucesso
Formato XML
<AsyncRRpcResponse>
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Success>true</Success>
<MessageId>889455942124347400</MessageId>
</AsyncRRpcResponse>
Formato JSON
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Success": true,
"MessageId": 889455942124347400
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|
400 |
iot.prod.NullProductKey |
The ProductKey is empty. |
A ProductKey está vazia. |
|
400 |
iot.prod.InvalidFormattedProductkey |
The ProductKey format is incorrect. |
O formato da ProductKey está incorreto. |
|
400 |
iot.device.NullDeviceName |
The deviceName is empty. |
O DeviceName está vazio. |
|
400 |
iot.device.InvalidFormattedDeviceName |
The deviceName format is incorrect. |
O formato do DeviceName está incorreto. |
|
400 |
iot.device.InactiveDevice |
The device is inactive. |
O dispositivo não está ativado, ou seja, nunca se conectou ao IoT Platform. |
|
400 |
iot.device.OfflineDevice |
The device is offline. |
O dispositivo está desconectado. |
|
400 |
iot.Device.NotExistedDevice |
This device does not exist. |
O dispositivo não existe ou não está ativado. |
Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.