Envio de SMS em JavaScript (Node.js): biblioteca twilio
No desenvolvimento web moderno, é frequentemente necessário enviar notificações por SMS aos usuários: confirmação de registro, códigos de autenticação de dois fatores, alertas sobre status de pedidos e muito mais. No ecossistema Node.js, uma das bibliotecas mais populares e confiáveis para essa tarefa é a twilio. Este é o SDK oficial da empresa Twilio, que fornece uma API simples e poderosa para envio programático de SMS, chamadas de voz e trabalho com outros serviços de telecomunicações.
Neste artigo, vamos detalhar como instalar, configurar e usar a biblioteca twilio para enviar SMS a partir da sua aplicação Node.js. Você aprenderá os métodos principais, como tratar erros e verá alguns exemplos práticos.
Instalação e configuração
Para começar, você precisará de uma conta no Twilio. Após o registro, você receberá:
- Account SID — identificador único da sua conta.
- Auth Token — chave secreta para autenticação de requisições.
- Twilio phone number — número de telefone do qual os SMS serão enviados (fornecido gratuitamente para testes).
Instale a biblioteca via npm:
npm install twilioApós a instalação, crie um arquivo send-sms.js e importe a biblioteca, passando suas credenciais:
const twilio = require('twilio');
const accountSid = 'YOUR_ACCOUNT_SID';const authToken = 'YOUR_AUTH_TOKEN';const client = twilio(accountSid, authToken);Envio básico de SMS
Para enviar uma mensagem, use o método client.messages.create(). Ele aceita um objeto com três campos obrigatórios:
body— texto da mensagem (até 1600 caracteres para um SMS).from— seu número Twilio (no formato+1234567890).to— número do destinatário (também no formato internacional).
Exemplo de envio de um SMS simples:
client.messages .create({ body: 'Olá! Esta é uma mensagem de teste do Twilio.', from: '+1234567890', to: '+79876543210' }) .then(message => console.log('Mensagem enviada. SID:', message.sid)) .catch(error => console.error('Erro:', error));Após o envio bem-sucedido, você receberá um objeto message contendo o sid único (identificador da mensagem), status de entrega e outras informações.
Envio assíncrono com async/await
Para uma abordagem mais moderna, use a sintaxe async/await. Envolva a chamada em try...catch para tratamento de erros:
const sendSMS = async (to, body) => { try { const message = await client.messages.create({ body: body, from: '+1234567890', to: to }); console.log(`SMS enviado para ${to}. SID: ${message.sid}`); return message; } catch (error) { console.error('Falha ao enviar SMS:', error.message); throw error; }};
// UsosendSMS('+79876543210', 'Seu código de confirmação: 1234');Parâmetros adicionais
A biblioteca suporta vários parâmetros opcionais. Aqui estão alguns deles:
mediaUrl— URL de uma imagem ou outro arquivo de mídia (para MMS).statusCallback— URL para receber notificações sobre o status de entrega (webhook).applicationSid— SID da aplicação Twilio para configuração adicional.
Exemplo de envio de MMS com imagem:
client.messages .create({ from: '+1234567890', to: '+79876543210', body: 'Veja esta f Também na biblioteca
Juniper: Biblioteca GraphQL completa para Rust
Envio de Email em Swift: Guia Completo sobre SMTP e MailKit
Processamento de Imagens em Java: Bibliotecas e Exemplos de Código
Geração de PDF em Java: visão geral das melhores bibliotecas (iText, Apache PDFBox, OpenPDF)