Envío de SMS a través de API en Node.js: biblioteca twilio

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

Envío de SMS en JavaScript (Node.js): biblioteca twilio



En el desarrollo web moderno, a menudo es necesario enviar notificaciones por SMS a los usuarios: confirmación de registro, códigos de autenticación de dos factores, alertas sobre el estado del pedido y mucho más. En el ecosistema de Node.js, una de las bibliotecas más populares y confiables para esta tarea es twilio. Este es el SDK oficial de la empresa Twilio, que proporciona una API simple y potente para el envío programático de SMS, llamadas de voz y trabajo con otros servicios de telecomunicaciones.



En este artículo, analizaremos en detalle cómo instalar, configurar y usar la biblioteca twilio para enviar SMS desde su aplicación Node.js. Aprenderá los métodos principales, cómo manejar errores y verá varios ejemplos prácticos.



Instalación y configuración



Para comenzar, necesitará una cuenta en Twilio. Después del registro, obtendrá:

  • Account SID — un identificador único de su cuenta.
  • Auth Token — una clave secreta para autenticar solicitudes.
  • Twilio phone number — un número de teléfono desde el cual se enviarán los SMS (se proporciona gratuitamente para pruebas).


Instale la biblioteca a través de npm:



npm install twilio


Después de la instalación, cree un archivo send-sms.js e importe la biblioteca, pasando sus credenciales:



const twilio = require('twilio');

const accountSid = 'YOUR_ACCOUNT_SID';const authToken = 'YOUR_AUTH_TOKEN';const client = twilio(accountSid, authToken);


Envío básico de SMS



Para enviar un mensaje, use el método client.messages.create(). Este acepta un objeto con tres campos obligatorios:

  • body — el texto del mensaje (hasta 1600 caracteres para un solo SMS).
  • from — su número de Twilio (en formato +1234567890).
  • to — el número del destinatario (también en formato internacional).


Ejemplo de envío de un SMS simple:



client.messages  .create({    body: '¡Hola! Este es un mensaje de prueba con Twilio.',    from: '+1234567890',    to: '+59876543210'  })  .then(message => console.log('Mensaje enviado. SID:', message.sid))  .catch(error => console.error('Error:', error));


Después de un envío exitoso, recibirá un objeto message que contiene un sid único (identificador del mensaje), estado de entrega y otra información.



Envío asíncrono con async/await



Para un enfoque más moderno, use la sintaxis async/await. Envuelva la llamada en un bloque try...catch para manejar errores:



const sendSMS = async (to, body) => {  try {    const message = await client.messages.create({      body: body,      from: '+1234567890',      to: to    });    console.log(`SMS enviado a ${to}. SID: ${message.sid}`);    return message;  } catch (error) {    console.error('No se pudo enviar el SMS:', error.message);    throw error;  }};

// UsosendSMS('+59876543210', 'Su código de confirmación: 1234');


Parámetros adicionales



La biblioteca admite muchos parámetros opcionales. Aquí hay algunos de ellos:

  • mediaUrl — URL de una imagen u otro archivo multimedia (para MMS).
  • statusCallback — URL para recibir notificaciones sobre el estado de entrega (webhook).
  • applicationSid — SID de la aplicación Twilio para configuración adicional.


Ejemplo de envío de MMS con una imagen:



client.messages  .create({    from: '+1234567890',    to: '+59876543210',    body: 'Mira esta f                    

Recommendations