Envoi de SMS en JavaScript (Node.js) : API de la bibliothèque sms-node-client

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

Bibliothèque sms-node-client : Envoi de SMS depuis Node.js



Les applications web modernes nécessitent souvent une intégration avec des services SMS pour envoyer des notifications, des confirmations d'inscription ou des campagnes marketing. La bibliothèque sms-node-client fournit une interface simple et pratique pour travailler avec les passerelles SMS populaires directement depuis Node.js. Elle abstrait la complexité des requêtes HTTP et de l'authentification, permettant au développeur de se concentrer sur la logique métier.



Dans cet article, nous examinerons les principales fonctionnalités de la bibliothèque : installation, configuration de la connexion à l'API, envoi de messages individuels et en masse, ainsi que la gestion des erreurs typiques.



Installation et connexion



La bibliothèque est distribuée via npm. Pour l'installer, exécutez la commande à la racine de votre projet :



npm install sms-node-client


Après l'installation, importez la bibliothèque dans votre fichier JavaScript :



const SMSClient = require('sms-node-client');

// ou en utilisant les modules ES6 (si configuré)// import SMSClient from 'sms-node-client';


Configuration du client



Pour utiliser l'API, vous devez initialiser un objet client en lui transmettant les paramètres de connexion : apiKey (clé d'accès) et apiSecret (clé secrète). Ces données sont généralement fournies par votre fournisseur SMS.



const client = new SMSClient({  apiKey: 'votre_clé_api',  apiSecret: 'votre_secret_api',  // Optionnel : vous pouvez spécifier une URL de base si le fournisseur utilise un endpoint non standard  // baseUrl: 'https://custom-sms-gateway.com/api/v1'});


Méthodes principales de la bibliothèque



La bibliothèque propose trois méthodes principales pour envoyer des messages :



  • sendSMS(phone, message, options?) — envoi d'un seul SMS vers un numéro.
  • sendBulkSMS(messages, options?) — envoi en masse vers plusieurs numéros.
  • getStatus(messageId) — vérification du statut de livraison par ID du message.


Exemple : Envoi d'un seul SMS



Le scénario le plus simple est d'envoyer un message vers un seul numéro. La méthode retourne une Promise, il est donc pratique d'utiliser async/await.



async function sendSingleSMS() {  try {    const result = await client.sendSMS(      '+71234567890',            // Numéro du destinataire au format international      'Bonjour ! Ceci est un message de test depuis Node.js.', // Texte du message      { sender: 'MyApp' }       // Optionnel : nom de l'expéditeur (doit être enregistré chez le fournisseur)    );

console.log('SMS envoyé avec succès :', result); // result.messageId - ID unique du message pour suivre le statut } catch (error) { console.error('Erreur d\'envoi du SMS :', error.message); }}

sendSingleSMS();


Exemple : Envoi en masse



Pour envoyer le même texte vers plusieurs numéros, utilisez la méthode sendBulkSMS. Elle accepte un tableau d'objets contenant les numéros.



async function sendBulk() {  const recipients = [    { phone: '+71234567890' },    { phone: '+70987654321' },    { phone: '+70123456789' }  ];

try { const result = await client.sendBulkSMS(recipients, { message: 'Cher client ! Votre commande est prête à être retirée.', sender: 'ShopBot' });

console.log(`Envoyé ${result.sentCount} messages`); // result.messages - tableau avec les détails pour chaque numéro } catch (error) { console.error('Erreur d\'envoi en masse :', error); }}

sendBulk();


Vérification du statut de livraison



Après l'envoi, vous pouvez vérifier si le message est bien parvenu au destinataire. Pour cela, utilisez le messageId obtenu lors de l'envoi.



async function checkStatus(messageId) {  try {    const status = await client.getStatus(messageId);    console.log('Statut du message :', status);    // status.s                    

Recommendations