Como enviar SMS em Node.js via Twilio

Node.js

Como enviar SMS em Node.js via Twilio

Luiz Duarte
Escrito por Luiz Duarte em 05/08/2021
Junte-se a mais de 34 mil devs

Entre para minha lista e receba conteúdos exclusivos e com prioridade

No tutorial de hoje eu vou lhe ensinar como enviar mensagens SMS usando a API da Twilio, uma empresa global de serviços de telefonia. Eles são gigantescos mas não é por isso que escolhi eles para usar, mas porque são uma das poucas empresas deste tipo que lhe permite criar uma conta gratuita para sair usando sem ter de colocar um cartão de crédito ou ter de falar com algum consultor antes. Totalmente self-service.

Esta conta de teste pode ser usada mas ela é cheia de restrições então tenha em mente que é o suficiente para fazer este tutorial e ver o funcionamento na prática, mas que sim, para envio de SMS não importa por qual provedor, você terá de abrir a carteira pois as operadoras telefônicas não fazem nada de graça e os SMS Gateway também não!

Para que possa fazer este tutorial, você já precisa estar familiarizado com Node.js, podendo ser até por algum tutorial iniciante aqui do blog como os vários presentes em meus guias de estudo.

Vamos ver neste tutorial:

  1. Setup da Conta
  2. Setup do Projeto
  3. Programando o Envio

Vamos lá!

Curso Node.js e MongoDB

#1 – Setup da Conta

Antes de começar a programar, é necessário que você acesse Twilio.com e crie uma conta gratuitamente para você. Certifique-se de finalizar todo processo de abertura de conta, o que inclui confirmar o seu email e o seu telefone celular através de mensagens enviadas por eles.

Após todo este processo, você deverá estar em uma tela parecida com essa:

Repare que eu tenho $15,50 nesta conta, que é a quantia que eles lhe fornecem para testar a plataforma. Além disso, repare ali no centro o Account SID e logo abaixo o Auth Token (ocultos). Você precisa destas duas informações para conseguir usar as APIs deles no Node.js, então anote esses dados.

Repare logo abaixo no botão azul que diz “Get a trial phone number”. Você deve clicar nele para obter um número de testes para seus envios. Confirme a escolha do número e anote-o pois precisará dele também.

Curso Beholder
Curso Beholder

#2 – Setup do Projeto

Agora que tem a sua conta Twilio criada, vamos criar o projeto Node.js.

Comece criando uma pasta para o mesmo e rodando o comando abaixo para configuração do package.json

Agora, instale as seguintes dependências que vamos usar

O pacote DotEnv é para as configurações de ambiente, já o pacote Twilio é o SDK da empresa para Node.js.

Agora crie na raiz do projeto um arquivo .env com as suas configurações da Twilio, como segue (mude para os seus valores, não esquecendo do número telefônico obtido na Twilio):

E agora vá no seu package.json e ajuste o script de start para inicializar a aplicação carregando o dotenv.

Repare que este script de inicialização está apontando para um arquivo index, que ainda não existe, vamos criá-lo como última etapa de setup do projeto.

Pronto, agora você tem uma aplicação Node.js rodando e carregando as variáveis de ambiente que vamos precisar.

Livro Node.js

#3 – Programando o Envio

Agora vamos programar o envio de SMS através da nossa aplicação. Para isso, escreva a seguinte função no seu index.js, no lugar do console.log.

Repare que você deve informar o número telefônico de destino na propriedade ‘to’ e ele deve estar completo, incluindo DDI (+55 no caso de números brasileiros) e seguido do seu DDD. Em ambiente de testes, este número tem de ser o mesmo que usou na criação da sua conta. E na propriedade ‘from’ deve ter o número obtido na Twilio gratuitamente, lá no passo 1, lembra? Ele também deve estar completo, incluindo DDI e DDD.

Também certifique-se de respeitar os limites de caracteres para SMS no body, que são em torno de 160 para a maioria dos encodings e operadoras. Estourar esse limite pode resultar em envios adicionais (e cobranças) ou o corte da mensagem mesmo, dependendo da operadora.

Depois de ajustado o código acima, execute-o com npm start e você deve receber o SMS enviado no telefone de destino.

Caso você obtenha o erro “The from number…is not a valid, SMS-capable inbound phone number or short code for your account” quer dizer que o seu TWILIO_NUMBER não foi corretamente preenchido nas variáveis de ambiente ou que você não obteve ele corretamente no passo 1 lá no painel da Twilio, é bom revisar ambos.

E caso você obtenha uma mensagem de sucesso como retorno, indica que seu SMS foi enviado bem como todos os detalhes do envio, em questão de instantes ele deve chegar no aparelho de destino que você informou, como no exemplo abaixo que chegou no meu próprio smartphone.

Repare como durante o trial eles anexam uma mensagem à frente da sua, pois é apenas para testes mesmo! Essa mensagem será removida quando aderir a um plano pago, o que recomenda que faça quando estiver decidido que vai colocar seu projeto em produção.

E com isso agora você tem um pequeno projeto perfeitamente funcional para envio de SMS em Node.js. Querendo evoluir para envio em massa, não deixe de conferir a parte 2!

Twilio também envia mensagens via WhatsApp, descubra como!

Quer enviar mensagens via Telegram? Aqui tem tutorial também!

Curso Beholder
Curso React Native

TAGS: nodejs

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *