Envio de SMS via API no Node.js: biblioteca twilio

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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 twilio


Apó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                    

Recommendations