Envío de SMS en JavaScript (Node.js): API de la biblioteca sms-node-client

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca sms-node-client: Envío de SMS desde Node.js



Las aplicaciones web modernas a menudo requieren integración con servicios SMS para enviar notificaciones, confirmaciones de registro o campañas de marketing. La biblioteca sms-node-client proporciona una interfaz simple y conveniente para trabajar con puertas de enlace SMS populares directamente desde Node.js. Abstrae la complejidad de las solicitudes HTTP y la autenticación, permitiendo al desarrollador centrarse en la lógica de negocio.



En este artículo, exploraremos las capacidades principales de la biblioteca: instalación, configuración de la conexión a la API, envío de mensajes individuales y masivos, así como el manejo de errores típicos.



Instalación y configuración



La biblioteca se distribuye a través de npm. Para instalarla, ejecute el siguiente comando en la raíz de su proyecto:



npm install sms-node-client


Después de la instalación, importe la biblioteca en su archivo JavaScript:



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

// o usando módulos ES6 (si está configurado)// import SMSClient from 'sms-node-client';


Configuración del cliente



Para trabajar con la API, es necesario inicializar un objeto cliente, pasándole los parámetros de conexión: apiKey (clave de acceso) y apiSecret (clave secreta). Normalmente, estos datos los proporciona su proveedor de SMS.



const client = new SMSClient({  apiKey: 'su_clave_api',  apiSecret: 'su_secreto_api',  // Opcional: se puede especificar una URL base si el proveedor usa un endpoint no estándar  // baseUrl: 'https://custom-sms-gateway.com/api/v1'});


Métodos principales de la biblioteca



La biblioteca proporciona tres métodos principales para enviar mensajes:



  • sendSMS(phone, message, options?) — envía un solo SMS a un número.
  • sendBulkSMS(messages, options?) — envío masivo a varios números.
  • getStatus(messageId) — verifica el estado de entrega por ID del mensaje.


Ejemplo: Envío de un solo SMS



El escenario más simple es enviar un mensaje a un solo número. El método devuelve una Promise, por lo que es conveniente usar async/await.



async function sendSingleSMS() {  try {    const result = await client.sendSMS(      '+71234567890',            // Número del destinatario en formato internacional      '¡Hola! Este es un mensaje de prueba desde Node.js.', // Texto del mensaje      { sender: 'MyApp' }       // Opcional: nombre del remitente (debe estar registrado en el proveedor)    );

console.log('SMS enviado exitosamente:', result); // result.messageId - ID único del mensaje para rastrear el estado } catch (error) { console.error('Error al enviar SMS:', error.message); }}

sendSingleSMS();


Ejemplo: Envío masivo



Para enviar el mismo texto a varios números, use el método sendBulkSMS. Este acepta un array de objetos con los números.



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

try { const result = await client.sendBulkSMS(recipients, { message: 'Estimado cliente, ¡su pedido está listo para ser recogido!', sender: 'ShopBot' });

console.log(`Se enviaron ${result.sentCount} mensajes`); // result.messages - array con detalles de cada número } catch (error) { console.error('Error en el envío masivo:', error); }}

sendBulk();


Verificación del estado de entrega



Después del envío, puede verificar si el mensaje llegó al destinatario. Para ello, use el messageId obtenido al enviar.



async function checkStatus(messageId) {  try {    const status = await client.getStatus(messageId);    console.log('Estado del mensaje:', status);    // status.s                    

Recommendations