Envio de SMS em Java: Visão geral e exemplos de uso de bibliotecas API (Twilio, Nexmo)

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 Java: Como usar bibliotecas API para envio de mensagens



O envio de mensagens SMS é uma função muito requisitada em aplicações web modernas, sistemas de autenticação (2FA), notificações e campanhas de marketing. Em Java, são utilizadas bibliotecas especializadas que interagem com APIs em nuvem de provedores. Neste artigo, veremos duas das bibliotecas mais populares: Twilio e Vonage (antiga Nexmo). Você aprenderá como conectá-las, enviar o primeiro SMS e tratar possíveis erros.



1. Por que é necessária uma biblioteca separada para SMS?

Trabalhar com SMS diretamente por meio de requisições HTTP é possível, mas inconveniente. As bibliotecas oferecem:

  • Classes prontas para criar e enviar mensagens.
  • Gerenciamento de erros e novas tentativas em caso de falhas de rede.
  • Trabalho seguro com chaves de API e tokens.
  • Suporte a funções adicionais (status de entrega, recebimento de SMS recebidos).


2. Biblioteca Twilio para Java

Twilio é um dos líderes do mercado. Seu Java SDK (Software Development Kit) é fácil de aprender e possui excelente documentação.



2.1 Conexão da dependência (Maven)

Adicione o seguinte bloco ao pom.xml:

<dependency>    <groupId>com.twilio.sdk</groupId>    <artifactId>twilio</artifactId>    <version>9.14.1</version> <!-- Verifique a versão mais recente --></dependency>


2.2 Envio de SMS via Twilio

Exemplo de código para enviar uma mensagem. Certifique-se de ter o Account SID e o Auth Token do console do Twilio, além de um número de telefone adquirido.

import com.twilio.Twilio;import com.twilio.rest.api.v2010.account.Message;import com.twilio.type.PhoneNumber;

public class SmsSender { // Defina suas credenciais public static final String ACCOUNT_SID = "SEU_ACCOUNT_SID"; public static final String AUTH_TOKEN = "SEU_AUTH_TOKEN";

public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN);

Message message = Message.creator( new PhoneNumber("+71234567890"), // Número do destinatário new PhoneNumber("+19876543210"), // Seu número Twilio "Olá do Java e Twilio!" ).create();

System.out.println("SMS enviado. SID: " + message.getSid()); }}

Importante: Os números de telefone devem estar no formato internacional (começando com +).



3. Biblioteca Vonage (Nexmo) para Java

A API SMS da Vonage é outra escolha popular. Sua biblioteca é chamada nexmo-java ou vonage-java-sdk.



3.1 Conexão da dependência (Gradle)

implementation 'com.vonage:client:7.3.0'

Para Maven:

<dependency>    <groupId>com.vonage</groupId>    <artifactId>client</artifactId>    <version>7.3.0</version></dependency>


3.2 Envio de SMS via Vonage

import com.vonage.client.VonageClient;import com.vonage.client.sms.MessageStatus;import com.vonage.client.sms.SmsSubmissionResponse;import com.vonage.client.sms.messages.TextMessage;

public class VonageSms { public static void main(String[] args) { VonageClient client = VonageClient.builder() .apiKey("SUA_API_KEY") .apiSecret("SEU_API_SECRET") .build();

TextMessage message = new TextMessage( "VonageAPI", // Remetente (até 11 caracteres) "+71234567890", // Destinatário "Mensagem de teste do Java e Vonage!" );

SmsSubmissionResponse response = clien

Recommendations