Como enviar SMS com Java e Twilio

March 23, 2021
Escrito por
Revisado por

Como enviar SMS com Java e Twilio

Você sabia que pode codificar um app Java em menos de 5 minutos para enviar um SMS usando a API Twilio? Provavelmente mais perto de 2 minutos, depois de instalar essas ferramentas. Você precisará de:

A maneira mais fácil de chamar a API Twilio é com a biblioteca auxiliar Twilio Java. Nesta postagem, mostrarei exemplos de como utilizar a ferramenta de desenvolvimento Apache Maven, que vai fazer download e gerenciar a dependência e empacotar o projeto. Você pode otimizar a velocidade com Maven em 5 minutos, e outras ferramentas como Gradle funcionarão também, se esse for o caso.

Se prefere assistir do que ler, confira o vídeo de demonstração de 2 minutos da Twilio:

Como criar um novo projeto

Suponho que você esteja começando um projeto do zero com um diretório vazio, então a primeira etapa será criar um novo projeto.

Como criar um novo projeto Maven

Criando um novo projeto Maven na IntelliJ IDEA como esta:

Captura de tela do assistente Novo Projeto Maven IDE. Uma configuração equivalente é descrita como um fragmento de código no texto.

Gosto de usar o assistente de Novo projeto integrado do IDE, mas também é possível criá-lo a partir da linha de comando criando uma pasta para seu código-fonte no layout de diretório padrão com mkdir -p src/main/java e criando um arquivo chamado pom.xml com este conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>java-send-sms</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>

[este código no GitHub]

Antes de começar a codificar, precisamos dizer ao Maven para usar o Java 8 e baixar a biblioteca auxiliar Twilio. Adicione o seguinte ao pom.xml como o último item antes de </project>:

<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>com.twilio.sdk</groupId>
        <artifactId>twilio</artifactId>
        <version>8.10.0</version>
    </dependency>
</dependencies>

Recomendamos sempre o uso da versão mais recente da biblioteca auxiliar da Twilio. No momento dessa postagem, a versão é 8.10.0, mas você sempre deve verificar a versão mais recente em mvnreporistory.com.

Como escrever o código

O Maven usa src/main/java como local para colocar seu código-fonte Java. Dentro dele, crie um pacote chamado com.example e uma classe dentro dele chamada TwilioSendSms. Sua estrutura de diretórios deverá ser:

├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── TwilioSendSms.java

Inicie a classe TwilioSendSms com um método main:

package com.example;

public class TwilioSendSms {

    public static void main(String[] args) {
        // code will go in here
    }
}

[este código no GitHub]

Onde ele diz // code will go in here, você precisa fazer duas coisas:

  • Como autenticar o Twilio Client
  • Chamar a API para enviar um SMS

Eles vão ter uma linha de código cada.

Como autenticar o Twilio Client

Você precisará da sua ACCOUNT_SID e do AUTH_TOKEN do seu Console da Twilio. Para ajudar a mantê-los em segredo, recomendo sempre ler esses dados de variáveis de ambiente em vez de fazer um codificação rígida. Eu uso o plugin EnvFile para IntelliJ IDEA e existem alternativas para outros IDEs ou você pode defini-los em seu SO. Depois que eles forem definidos no ambiente, adicione esse código no corpo da função main():

Twilio.init(
    System.getenv("TWILIO_ACCOUNT_SID"),
    System.getenv("TWILIO_AUTH_TOKEN"));

Se você não tiver definido as variáveis de ambiente, esse código será gerado

com.twilio.exception.AuthenticationException: Username can not be null

Como enviar seu primeiro SMS

Finalmente, o código para enviar uma mensagem de texto! Adicione o código ao método main abaixo do código init que você acabou de adicionar:

Message.creator(
    new PhoneNumber("<TO number - ie your cellphone>"),
    new PhoneNumber("<FROM number - ie your Twilio number"),
    "Hello from Twilio 📞")
  .create();

[este código (com importações) no GitHub]

Os números de telefone que você passa para os construtores PhoneNumber precisam ser reais no formato E.164. Depois de adicioná-los, execute o código e pronto!

Captura de tela do app de SMS do meu telefone&#x27 mostrando uma mensagem que diz "Olá da Twilio"

🎉🎉🎉 Parabéns! 🎉🎉🎉

Para finalizar

Agora que você sabe como enviar um SMS usando a API da Twilio, a próxima etapa pode ser Como receber e responder a SMS do Java.

É hora de colocar sua imaginação em prática. Você pode enviar lembretes diáriosprevisões do tempoalertas para vagas de estacionamento ou qualquer outra coisa que você possa imaginar.

Este artigo foi traduzido do original "Sending SMS with Java with Twilio". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.