Envoie un message asynchrone à un appareil spécifié.
Notes d'utilisation
Appelez cette opération pour envoyer un message depuis IoT Platform vers un appareil connecté via MQTT (y compris les passerelles MQTT) ou via une passerelle GB/T 32960.
Limites de QPS
Vous pouvez appeler cette opération jusqu'à 1 000 fois par seconde par compte.
Les utilisateurs RAM (Resource Access Management) d'un compte Alibaba Cloud partagent le quota du compte.
Débogage
Paramètres de requête
|
Parameter |
Type |
Required |
Example |
Description |
| Action | String | Yes | AsyncRRpc |
Opération à effectuer. Définissez la valeur sur AsyncRRpc. |
| DeviceName | String | Yes | device1 |
Nom de l'appareil (DeviceName) auquel vous souhaitez envoyer le message. |
| ProductKey | String | Yes | aldfeSe**** |
Clé produit (ProductKey) à laquelle l'appareil appartient. |
| MessageContent | String | Yes | eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0= |
Corps du message à publier. Convertissez le message brut en données binaires, puis encodez-le en Base64. Remarque
IoT Platform décode les données encodées en Base64 avant d'envoyer le message à l'appareil ; ce dernier n'a donc pas besoin d'effectuer le décodage Base64. |
| TopicFullName | String | No | /a1uZfYb****/A_Vol****/user/update |
Topic personnalisé de l'appareil. Requis lors de l'envoi d'un message à un appareil connecté via MQTT. L'appareil doit disposer des autorisations Subscribe ou Publish and Subscribe sur le topic. Non requis pour les appareils connectés via une passerelle GB/T 32960. |
| ExtInfo | String | No | {"commandType": 128} |
Type de commande dans le message. Requis lors de l'envoi d'un message à un appareil connecté via une passerelle GB/T 32960. Valeurs valides :
Pour plus d'informations sur la connexion d'un appareil via une passerelle GB/T 32960, consultez Passerelles GB/T 32960. |
| IotInstanceId | String | No | iot-v64******** |
ID de l'instance. Vous trouverez l'ID sur la page Overview de la console IoT Platform. Important
Pour plus d'informations, consultez Présentation. |
Outre les paramètres spécifiques à l'opération listés ci-dessus, vous devez également spécifier les paramètres de requête communs. Pour plus d'informations, consultez Paramètres communs.
Paramètres de réponse
|
Parameter |
Type |
Example |
Description |
| Code | String | iot.device.InvalidFormattedDeviceName |
Code d'erreur renvoyé en cas d'échec de la requête. Pour plus d'informations, consultez la section Codes d'erreur. |
| ErrorMessage | String | The format of DeviceName is invalid. |
Message d'erreur renvoyé en cas d'échec de la requête. |
| MessageId | Long | 889455942124347392 |
ID du message généré par IoT Platform lors de l'envoi du message. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 |
ID de la requête. |
| Success | Boolean | true |
Indique si la requête a réussi. Valeurs valides :
|
Exemples
Exemples de requêtes
https://iot.cn-shanghai.aliyuncs.com/?Action=AsyncRRpc
&DeviceName=device1
&MessageContent=dGhpcyBpcyBhbiBleGFtcGxl
&ProductKey=aldfeSe****
&IotInstanceId=iot-v64********
&<Common request parameters>
Exemples de réponses réussies
XML format
<AsyncRRpcResponse>
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Success>true</Success>
<MessageId>889455942124347400</MessageId>
</AsyncRRpcResponse>
JSON format
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Success": true,
"MessageId": 889455942124347400
}
Codes d'erreur
|
HTTP status code |
Error code |
Error message |
Description |
| 400 | iot.prod.NullProductKey | The ProductKey is empty. | La ProductKey est vide. |
| 400 | iot.prod.InvalidFormattedProductkey | The ProductKey format is incorrect. | Le format de la valeur du paramètre ProductKey est incorrect. |
| 400 | iot.device.NullDeviceName | The deviceName is empty. | Le DeviceName est vide. |
| 400 | iot.device.InvalidFormattedDeviceName | The deviceName format is incorrect. | Le format du DeviceName est incorrect. |
| 400 | iot.device.InactiveDevice | The device is inactive. | L'appareil n'est pas activé, ce qui signifie qu'il ne s'est jamais connecté à IoT Platform. |
| 400 | iot.device.OfflineDevice | The device is offline. | L'appareil est déconnecté. |
| 400 | iot.Device.NotExistedDevice | This device does not exist. | L'appareil n'existe pas ou n'est pas activé. |
Pour obtenir la liste des codes d'erreur, consultez les Codes d'erreur de service.