https://d226lax1qjow5r.cloudfront.net/blog/blogposts/send-sms-messages-node-red-dr/send-sms-messages-node-red.png

Comment envoyer des SMS avec Node-RED

Publié le November 8, 2020

Temps de lecture : 8 minutes

Note : Certains des outils ou méthodes décrits dans cet article peuvent ne plus être pris en charge ou ne plus être d'actualité. Pour un contenu mis à jour ou une assistance, consultez nos derniers articles ou contactez-nous sur le site Communauté Vonage Slack

Ceci est le premier article d'une série de tutoriels "Getting Started with Vonage and Node-RED" (Démarrer avec Vonage et Node-RED).

L'API SMS de Vonage SMS DE VONAGE vous permet d'envoyer et de recevoir des SMS dans le monde entier, à l'aide d'une simple API basée sur HTTP.

La bonne nouvelle est que l'interaction avec cette API, et bien d'autres, vient d'être facilitée par l'ajout des nœuds Nexmo à la palette Node-RED.

Dans cet article, vous allez apprendre à envoyer des SMS avec Node-RED. Obtenez ce flux à partir de la Bibliothèque Node-RED ou suivez la procédure.

Conditions préalables

Avant de commencer, vous aurez besoin de quelques éléments :

Obtenir ses diplômes

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

Alors que dans certains pays, vous pouvez envoyer un SMS sans louer un numéro Vonage, d'autres pays, comme les États-Unis, exigent que vous soyez propriétaire du numéro d'où proviennent vos SMS.

Configuration de l'éditeur Node-RED

Tout d'abord, vous devez installer le runtime et l'éditeur. Cela peut se faire sur votre machine locale, sur un Single Board Computer (par exemple Raspberry Pi), ou sur un certain nombre d'options hébergées dans le cloud. Cet exemple utilisera votre machine locale, donc une fois que vous avez installé Node-RED globalement, tapez simplement la commande ci-dessous dans votre terminal pour commencer.

node-red

Vous pouvez ensuite accéder à l'éditeur Node-RED en pointant votre navigateur sur http://localhost:1880.

Une fois votre éditeur ouvert, vous devez installer les nœuds Nexmo. Vous pouvez le faire sous la palette Gérer la palette en recherchant le paquet node-red-contrib-nexmo et en cliquant sur installer.

Install the Nexmo Node-RED packageInstall the Nexmo Node-RED package

Vous devriez maintenant voir tous les nœuds Nexmo apparaître sur le côté gauche de votre écran, parmi les nœuds par défaut.

Envoyer un SMS avec Node-RED

Faites défiler vers le bas jusqu'au nœud sendsms et faites-le glisser dans votre espace de travail. C'est lui qui fera le gros du travail dans le tutoriel d'aujourd'hui.

Vous pouvez configurer ce nœud en double-cliquant dessus et en remplissant les paramètres ci-dessous. Vous trouverez API KEY et API SECRET en cliquant sur le bouton d'édition à côté de Nexmo Credentials.

CLÉ

DESCRIPTION

API KEY

Votre clé API, indiquée dans votre vue d'ensemble de votre Account.

API SECRET

Votre secret API, indiqué dans votre vue d'ensemble de votre Account.

TO

Le numéro auquel vous envoyez le SMS au format E.164. Par exemple 447401234567.

FROM

Le numéro ou le texte affiché sur un combiné lorsqu'il affiche votre message. Vous pouvez définir un FROM alphanumérique personnalisé pour mieux représenter votre marque, si cette fonction est prise en charge dans votre pays. cette fonction est prise en charge dans votre pays.

TEXT

Le contenu de votre message. N'hésitez pas à faire preuve de créativité, mais un "Hello World !" fera tout aussi bien l'affaire.

Ensuite, ajoutez un nœud inject au flux et le câbler en tant qu'entrée pour sendsms.

Il s'agit d'une fonction assez puissante, qui permet d'initier le flux avec une valeur de charge utile spécifique. Il permet d'injecter des chaînes, des nombres, des booléens, des objets JavaScript ou des valeurs de contexte de flux/global, avec par défaut le timestamp de l'heure actuelle en millisecondes depuis le 1er janvier 1970.

Vous pouvez simplement l'utiliser pour déclencher votre flux, en codant en dur tous les paramètres dans le nœud sendsms ou vous pouvez aller plus loin.

À côté du TO,FROM et TEXT il y a un signe {} ce qui signifie que Mustache templating est pris en charge pour ces champs. Cela s'avère pratique lorsque l'on passe certaines valeurs dynamiquement au nœud sendsms de manière dynamique.

Sachant que l'horodatage est injecté, ajoutons cette valeur au texte du message en faisant référence à {{msg.payload}}par exemple :

Hello World! The timestamp is `{{msg.payload}}`.

Pour avoir une idée plus précise de ce qui se passe lorsque vous envoyez un SMS, insérez la sortie sendsmsdans un nœud debug nœud. Double-cliquez dessus et définissez le paramètre Output à complete msg object.

Frapper Déployer et cliquez sur le bouton du nœud inject votre SMS devrait être en route !

Sending an SMS in Node-REDSending an SMS in Node-RED

Lorsque vous faites une requête réussie à l'API SMS, celle-ci renvoie un tableau d'objets message. Idéalement, chacun de ces objets a un `status` de `0`, indiquant que votre message a été programmé avec succès pour l'envoi, et quelques autres détails comme le numéro du destinataire, l'identifiant du message, le solde restant, le prix et le réseau de l'opérateur qui sera utilisé pour l'envoi du SMS.

Vous pouvez jeter un coup d'œil à cet objet de réponse dans la zone de débogage sur le côté droit de votre éditeur Node-RED.

Bien que l'inspection de cette sortie soit très utile pour déterminer ce que l'API SMS a fait, il n'y a aucune garantie que le message ait atteint le combiné du destinataire.

Lorsque le message est délivré, l'opérateur de téléphonie mobile renvoie un reçu de livraison à Vonage. Celui-ci contient l'état de la livraison.

Réception d'un accusé de réception d'un transporteur mobile

Pour connaître le status de votre message sortant, vous devrez configurer un point de terminaison webhook que Vonage pourra transmettre à l'expéditeur. Accusé de réception à Vonage.

Définition d'un point de terminaison Webhook

Tout d'abord, connectez un nœud d'entrée http à un nœud http response ainsi qu'à un nœud debug afin que vous puissiez visualiser votre accusé de réception dans la zone de débogage.

Dans le nœud d'entrée http nœud d'entrée, sélectionnez POST en tant que Method et remplissez le champ URL avec quelque chose comme /receipt. Le nœud http response devrait avoir 200 défini comme Status codemais ne vous inquiétez pas, c'est aussi la valeur par défaut.

Setting up a webhook for delivery receiptsSetting up a webhook for delivery receipts

Exposer votre serveur local à l'Internet

Ensuite, vous devrez exposer votre serveur local à l'internet, afin que Vonage puisse y accéder. Une façon pratique de le faire est d'utiliser un service de tunneling comme ngrok.

Télécharger et installez ngrokpuis lancez-le dans le terminal pour démarrer un tunnel sur le port 1880.

./ngrok http 1880

Starting an ngrok tunnel in a terminal windowStarting an ngrok tunnel in a terminal window

Votre serveur local dispose désormais d'une URL ngrok qui peut être utilisée comme point de terminaison de votre webhook.

Configuration du point d'accès avec Vonage

La dernière étape consiste à indiquer à l'API SMS de Vonage l'endroit où il doit transmettre les accusés de réception. Vous pouvez le faire dans vos paramètres de l'API dans la section Paramètres SMS par défaut section Default SMS Setting.

Définissez l'URL par défaut du webhook pour les accusés de réception comme suit YOUR_NGROK_URL/receiptpuis Save changes.

Delivery receipt endpoint URL in dashboardDelivery receipt endpoint URL in dashboard

Maintenant, lorsque vous retournez dans votre éditeur Node-RED et que vous envoyez un autre message, vous verrez le reçu de livraison apparaître dans la zone de débogage :

Delivery receipt in debug sidebarDelivery receipt in debug sidebar

Les status et err-code indiquent tous deux que le message a été livré avec succès. Pour en savoir plus sur les messages d'état de réception et les codes d'erreur, consultez la section docs.

Quelle est la prochaine étape ?

Partager:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroDéfenseur des développeurs

Julia s'engage à aider ses collègues développeurs en créant des tutoriels, des guides et des ressources pratiques. Grâce à son expérience en matière de sensibilisation et d'éducation, elle vise à rendre la technologie plus accessible et à améliorer l'expérience globale des développeurs. Vous pouvez souvent la trouver lors d'événements communautaires locaux.