
Partager:
Michael Crump travaille chez Vonage au sein de l'équipe Developer Experiences. C'est un codeur, un YouTuber et un conférencier qui aborde fréquemment divers sujets liés à .NET et au développement des communications et de l'informatique en nuage. Il se passionne pour aider les développeurs à comprendre les avantages de chacun d'entre eux de manière simple.
Comment recevoir un accusé de réception de SMS avec Node.js
Introduction
Lorsque vous envoyez un message texte à un numéro de téléphone avec les API de Vonage, la réponse HTTP de l'API peut vous indiquer si le message a été envoyé avec succès envoyé. Cependant, elle ne vous indique pas si le message est délivré au destinataire. Heureusement, il y a un champ dans votre portail du développeur Vonage qui vous permet de voir quand l'état de la livraison change sous la forme d'un webhook.
Dans ce tutoriel, vous apprendrez à savoir si les SMS envoyés depuis votre numéro virtuel ont été délivrés en utilisant Node.js.
Si vous souhaitez passer directement à l'exécution de l'application, vous pouvez trouver une version entièrement fonctionnelle sur GitHub.
Conditions préalables
Avant de commencer, assurez-vous que vous disposez des éléments suivants :
Node.js installé. Node.js est un environnement d'exécution JavaScript open-source et multiplateforme.
ngrok - Un Account gratuit est nécessaire. Cet outil permet aux développeurs d'exposer un serveur de développement local à l'Internet.
Utilisation de ngrok pour établir un tunnel local
ngrok est une application multiplateforme qui permet aux développeurs d'exposer un serveur de développement local à l'Internet avec un minimum d'effort. Nous allons l'utiliser pour exposer notre webhook (créé prochainement) à l'Internet public.
Lorsqu'un message est délivré, l'opérateur de téléphonie mobile renvoie généralement un reçu de livraison (DLR) à Vonage, expliquant l'état de livraison de votre message. Si vous avez configuré un point de terminaison webhook, Vonage transmet alors ce reçu de livraison à votre point de terminaison.
Nous devons configurer ngrok pour créer un tunnel local afin de pouvoir exécuter notre code Node.js plus tard.
Une fois que vous avez configuré ngrok et que vous êtes connecté (encore une fois, le compte gratuit est acceptable), exécutez la commande suivante :
ngrok http 5000Une fois que ngrok s'est exécuté, il vous donnera un fichier Forwarding que nous utiliserons comme base pour notre Webhook plus tard dans l'article. La mienne ressemble à ce qui suit :
ngrok.png
Notez l'URL de transfert, car nous l'utiliserons à l'étape suivante.
Activer les reçus de livraison (DLR) dans le tableau de bord du développeur de Vonage
Pour utiliser cette fonction, vous devez créer un Vonage Developer Account à partir du portail des développeurs. Si vous n'avez pas de compte, allez-y et créez-en un, car nous fournissons des crédits pour commencer. Aucune carte de crédit n'est nécessaire.
Connectez-vous à votre Account Vonage, et allez à Paramètres. Faites défiler vers le bas jusqu'à Paramètres SMSet remplissez la section Accusés de réception (DLR) webhooks avec l'URL de transfert de ngrok et ajoutez /receiptet appuyez sur save.
smssettings.png
Chaque fois que vous envoyez un message depuis votre numéro virtuel, l'appel webhook de réception de livraison sera effectué vers cette URL qui exécutera le code sur votre machine locale. Écrivons un peu de code avec Node.js et Express pour gérer cela !
Configuration du projet Node.js
Maintenant que nous avons configuré ngrok et ajouté un webhook de webhook de réception de livraison voyons comment configurer notre application Node.js.
Commencez par accéder à une invite de commande/terminal, créez un répertoire de travail et initialisez un projet Node.js.
Nous traiterons les demandes avec Express et utiliserons body-parser pour analyser les corps des requêtes entrantes. Installez ces deux éléments comme suit :
npm install express body-parser --saveCréer un fichier index.js instanciez express et écoutez le serveur sur le port 5000, puisque nous avons configuré ngrok sur ce port.
const app = require('express')();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));Définissons le point de terminaison de l'URL de réception comme suit /receipt.
app
.route('/receipt')
.get(handleDeliveryReceipt)
.post(handleDeliveryReceipt)Définissez ensuite la fonction handleDeliveryReceipt comme suit :
function handleDeliveryReceipt(request, response) {
const params = Object.assign(request.query, request.body)
console.log(params)
response.status(204).send()
}
app.listen(process.env.PORT || 5000)L'application enregistre alors le reçu dans la fenêtre de la console.
Exécuter l'application
Saisissez les informations suivantes à l'invite de votre commande/terminal pour lancer l'application :
node index.jsEssayez d'envoyer des messages texte de votre numéro virtuel Vonage à votre numéro de téléphone mobile pour tester.
Si votre message a été envoyé avec succès à votre téléphone portable, vous devriez recevoir un accusé de réception contenant les informations suivantes l'état, messageId, code réseauetc. Ces informations sont affichées dans le terminal ou à l'invite de commande.
Vous trouverez ci-dessous un exemple de ce à quoi ressemble le mien :
{
msisdn: '14259999999',
to: '18339999999',
'network-code': '310260',
messageId: 'c0f9b0a4-f62a-481e-8698-d52231de9047',
price: '0.00869000',
status: 'delivered',
scts: '9992241831',
'err-code': '0',
'api-key': '99999999',
'message-timestamp': '2023-02-24 18:31:15'
}Note : Tous les réseaux et tous les pays ne prennent pas en charge les accusés de réception. Veuillez consulter la documentation pour plus d'informations.
Synthèse
Maintenant que vous avez appris à savoir si les SMS envoyés depuis votre numéro virtuel ont été délivrés à l'aide de Node.js, vous pouvez étendre ce projet pour enregistrer la réponse dans une base de données en nuage ou essayer notre Messaging API. Essayez également d'envoyer un message texte lorsque votre téléphone est éteint afin de voir les différents états de la fonction statut champ.
Si vous avez des questions ou des commentaires, rejoignez-nous sur le Slack des développeurs de Vonage ou envoyez-moi un Tweet sur Twitteret je vous répondrai. Merci encore d'avoir lu, et je vous donne rendez-vous au prochain numéro !
Partager:
Michael Crump travaille chez Vonage au sein de l'équipe Developer Experiences. C'est un codeur, un YouTuber et un conférencier qui aborde fréquemment divers sujets liés à .NET et au développement des communications et de l'informatique en nuage. Il se passionne pour aider les développeurs à comprendre les avantages de chacun d'entre eux de manière simple.