Envoi de SMS en JavaScript (Node.js) : API, bibliothèques et exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Envoi de SMS en JavaScript (Node.js) : API, bibliothèques et exemples pratiques



Dans le monde moderne, les notifications par SMS restent l'un des moyens les plus fiables de communiquer avec les utilisateurs. Qu'il s'agisse de confirmation d'inscription, de code d'authentification à deux facteurs ou de campagnes marketing, la possibilité d'envoyer des SMS par programmation est cruciale pour de nombreuses applications web. Dans cet article, nous allons voir comment implémenter l'envoi de SMS en JavaScript (Node.js) en utilisant différentes API et bibliothèques.



Choix du fournisseur de SMS et obtention de la clé API



La première étape consiste à choisir un service d'envoi de SMS. Il existe de nombreux fournisseurs, tels que Twilio, Nexmo (Vonage), Amazon SNS, ClickSend, et bien d'autres. Pour commencer, vous aurez besoin de :

  • Vous inscrire au service choisi.
  • Créditer votre compte ou activer un compte de test.
  • Obtenir une clé API, un SID et un jeton d'accès (la terminologie varie selon le fournisseur).
  • Configurer l'expéditeur (Sender ID) — un numéro de téléphone ou un nom alphabétique.


Installation des bibliothèques nécessaires



Pour interagir avec les API des fournisseurs de SMS dans Node.js, on utilise le plus souvent les SDK officiels. Voyons l'installation avec l'exemple du service populaire Twilio et de la bibliothèque universelle axios pour les requêtes HTTP.



# Installation de la bibliothèque Twilionpm install twilio

# Installation d'axios pour les requêtes REST APInpm install axios


Exemple 1 : Envoi de SMS via le SDK Twilio



Twilio fournit un SDK pratique pour Node.js. Après l'installation, créez un fichier send-sms.js et ajoutez le code suivant :



const twilio = require('twilio');

// Vos identifiants depuis la console Twilioconst accountSid = process.env.TWILIO_ACCOUNT_SID;const authToken = process.env.TWILIO_AUTH_TOKEN;

const client = new twilio(accountSid, authToken);

async function sendSMS() { try { const message = await client.messages.create({ body: 'Bonjour ! Ceci est un SMS de test depuis une application Node.js.', from: '+1234567890', // Numéro fourni par Twilio to: '+79001234567' // Numéro du destinataire }); console.log('SMS envoyé. SID :', message.sid); } catch (error) { console.error('Erreur lors de l\\'envoi du SMS :', error); }}

sendSMS();


Important : Ne stockez jamais les clés directement dans le code. Utilisez des variables d'environnement (fichier .env ou paramètres système).



Exemple 2 : Envoi de SMS via une API REST universelle



Si votre fournisseur ne dispose pas d'un SDK officiel, vous pouvez utiliser axios pour envoyer une requête POST. Voici un exemple avec une passerelle SMS abstraite :



const axios = require('axios');

const API_URL = 'https://api.sms-provider.com/v1/send';const API_KEY = process.env.SMS_API_KEY;

async function sendSMSViaREST(phone, message) { try { const response = await axios.post(API_URL, { apiKey: API_KEY, phone: phone, text: message, sender: 'MyApp' // Nom de l'expéditeur }, { headers: { 'Content-Type': 'application/json' } }); console.log('Réponse du serveur :', response.data); } catch (error) { console.error('Erreur :', error.response ? error.response.data : error.message); }}

// UtilisationsendSMSViaREST('+79001234567', 'Votre code de confirmation : 1234');


Gestion des erreurs et des statuts de livraison



Lorsque vous travaillez avec les SMS, il est important de prendre en compte les erreurs possibles :

  • Numéro invalide — vérifiez le format du téléphone (format international avec +).
  • Solde insuffisant — surveillez le solde de votre compte.
  • Limitations du fournisseur — certains opérateurs bloquent les envois en masse.
  • Délais d'attente — utilisez la gestion

Recommendations