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-clientDespué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 También en la biblioteca
Cliente REST de Elasticsearch para Kotlin: guía de uso
Integración de métricas de Prometheus en C++: biblioteca prometheus-cpp
Colas de tareas en Kotlin: Coroutines, KJob y patrones avanzados
Cliente OAuth para TypeScript: integración de autorización en aplicaciones web
Ramsey/UUID PHP: guía completa con ejemplos prácticos