Envío de SMS en TypeScript: Resumen de bibliotecas API para integración con proveedores de SMS
Las aplicaciones web modernas a menudo requieren funcionalidad de envío de mensajes SMS: para autenticación de dos factores, notificaciones o campañas de marketing. TypeScript, gracias a su tipificación estricta y su fácil integración con Node.js, es una excelente opción para crear servicios SMS robustos. En este artículo, revisaremos las bibliotecas clave y los enfoques para enviar SMS en TypeScript, utilizando las API populares de proveedores de SMS.
¿Por qué TypeScript para enviar SMS?
TypeScript añade tipificación estática a JavaScript, lo que es especialmente útil al trabajar con API externas. Usted obtiene:
- Autocompletado y sugerencias en el IDE para métodos y parámetros de solicitudes.
- Tipificación de respuestas de la pasarela SMS, lo que reduce la cantidad de errores en tiempo de ejecución.
- Trabajo seguro con asincronía mediante
async/awaity Promise.
Bibliotecas principales para enviar SMS en TypeScript
Existen varias bibliotecas populares que proporcionan tipos TypeScript e interfaces convenientes para la integración con proveedores de SMS. Consideremos las dos más comunes: Twilio y Vonage (anteriormente Nexmo).
1. Biblioteca para Twilio
Twilio es uno de los líderes del mercado de comunicaciones en la nube. El SDK oficial twilio es totalmente compatible con TypeScript y proporciona tipos listos para usar.
Instalación:
npm install twilionpm install @types/twilio --save-dev // si no se instalan automáticamenteEjemplo de envío de SMS en TypeScript con Twilio:
import { Twilio } from 'twilio';
// Inicialización del clienteconst accountSid = process.env.TWILIO_ACCOUNT_SID!;const authToken = process.env.TWILIO_AUTH_TOKEN!;const client = new Twilio(accountSid, authToken);
// Función asíncrona de envíoasync function sendSms(to: string, body: string): Promise<string> { try { const message = await client.messages.create({ body: body, from: process.env.TWILIO_PHONE_NUMBER, // su número en formato +1234567890 to: to }); console.log(`SMS enviado, SID: ${message.sid}`); return message.sid; } catch (error) { console.error('Error al enviar SMS:', error); throw error; }}
// UsosendSms('+71234567890', 'Su código de confirmación: 1234') .then(sid => console.log('Éxito:', sid)) .catch(err => console.error('Error:', err));2. Biblioteca para Vonage (anteriormente Nexmo)
Vonage también ofrece un potente SDK con soporte para TypeScript. Instalación y configuración básica:
npm install @vonage/server-sdkEjemplo de envío de SMS a través de Vonage en TypeScript:
import { Vonage } from '@vonage/server-sdk';import { Auth } from '@vonage/auth';
// Configuración de autenticaciónconst vonage = new Vonage(new Auth({ apiKey: process.env.VONAGE_API_KEY!, apiSecret: process.env.VONAGE_API_SECRET!}));
async function sendSmsVonage(to: string, text: string): Promise<void> { try { const response = await vonage.sms.send({ to: to, from: 'YourApp', text: text }); console.log('Mensaje enviado:', response); } catch (error) { console.error('Error:', error); }}
// Llamada a la funciónsendSmsVonage('71234567890', '¡Hola desde TypeScript!');Creación de un servicio SMS universal en TypeScript
Para mayor flexibilidad, se puede crear una clase abstracta o interfaz que permita cambiar fácilmente entre proveedores:
// sms.interface.tsexport interface SmsProvider { sendSms(to: string, message: string): Promise< También en la biblioteca
Pest para PHP: guía completa con ejemplos
Autorización y autenticación en PHP: guía completa con ejemplos