Envio de SMS em JavaScript (Node.js): API, bibliotecas e exemplos de código

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): API, bibliotecas e exemplos práticos



No mundo moderno, as notificações por SMS continuam sendo uma das formas mais confiáveis de comunicação com os usuários. Seja para confirmação de registro, código de autenticação de dois fatores ou campanhas de marketing — a capacidade de enviar mensagens SMS programaticamente é crucial para muitas aplicações web. Neste artigo, veremos como implementar o envio de SMS em JavaScript (Node.js) usando várias APIs e bibliotecas.



Escolha do provedor de SMS e obtenção da chave da API



O primeiro passo é escolher um serviço para envio de SMS. Existem muitos provedores, como Twilio, Nexmo (Vonage), Amazon SNS, ClickSend e outros. Para começar, você precisará:

  • Registrar-se no serviço escolhido.
  • Adicionar créditos ou conectar uma conta de teste.
  • Obter a chave da API, SID e token de acesso (cada provedor tem sua própria terminologia).
  • Configurar o remetente (Sender ID) — um número de telefone ou nome alfanumérico.


Instalação das bibliotecas necessárias



Para trabalhar com as APIs dos provedores de SMS em Node.js, geralmente são usados os SDKs oficiais. Vejamos a instalação usando como exemplo o serviço popular Twilio e a biblioteca universal axios para requisições HTTP.



# Instalação da biblioteca Twilionpm install twilio

# Instalação do axios para requisições REST APInpm install axios


Exemplo 1: Envio de SMS via Twilio SDK



O Twilio fornece um SDK conveniente para Node.js. Após a instalação, crie um arquivo send-sms.js e adicione o seguinte código:



const twilio = require('twilio');

// Suas credenciais do console Twilioconst accountSid = process.env.TWILIO_ACCOUNT_SID;const authToken = process.env.TWILIO_AUTH_TOKEN;

const client = new twilio(accountSid, authToken);

async function sendSMS() { try { const message = await client.messages.create({ body: 'Olá! Este é um SMS de teste do aplicativo Node.js.', from: '+1234567890', // Número obtido do Twilio to: '+5511999999999' // Número do destinatário }); console.log('SMS enviado. SID:', message.sid); } catch (error) { console.error('Erro ao enviar SMS:', error); }}

sendSMS();


Importante: Nunca armazene chaves diretamente no código. Use variáveis de ambiente (arquivo .env ou configurações do sistema).



Exemplo 2: Envio de SMS via REST API universal



Se o seu provedor não possui um SDK oficial, você pode usar o axios para enviar uma requisição POST. Vejamos um exemplo com um gateway SMS abstrato:



const axios = require('axios');

const API_URL = 'https://api.sms-provider.com/v1/send';const API_KEY = process.env.SMS_API_KEY;

async function sendSMSViaREST(phone, message) { try { const response = await axios.post(API_URL, { apiKey: API_KEY, phone: phone, text: message, sender: 'MyApp' // Nome do remetente }, { headers: { 'Content-Type': 'application/json' } }); console.log('Resposta do servidor:', response.data); } catch (error) { console.error('Erro:', error.response ? error.response.data : error.message); }}

// UsosendSMSViaREST('+5511999999999', 'Seu código de confirmação: 1234');


Tratamento de erros e status de entrega



Ao trabalhar com SMS, é importante considerar possíveis erros:

  • Número inválido — verifique o formato do telefone (formato internacional com +).
  • Saldo insuficiente — monitore o saldo da conta.
  • Restrições do provedor — algumas operadoras bloqueiam envios em massa.
  • Timeouts — use tra

Recommendations