Enviando mensagens de texto com o Twilio utilizando Java e Spring Boot: Um guia passo a passo.
Published: 2023-06-15 17:01:36

**O que é o Twilio:**

O Twilio é uma plataforma de comunicação em nuvem que permite a integração de serviços de mensagens, voz e vídeo em aplicativos. Neste artigo, exploraremos como enviar mensagens de texto usando o Twilio em conjunto com o framework Spring Boot em Java. Você aprenderá como adicionar a biblioteca do Twilio no seu projeto Spring Boot e enviar mensagens de texto programaticamente.

Caso nao tenha um conta, acesse o site do Twilio para criar sua conta.

O Twilio ira liberar um número de telefone e credenciais para a utilização do serviços.

**Adicionando dependencia do Twilio.**

A primeira coisa que devemos fazer e configurar a biblioteca do Twilio no projeto. Adicione a dependência do Twilio SDK ao seu projeto Spring Boot. Isso pode ser feito através do Maven ou do Gradle, dependendo do seu gerenciador de dependências preferido. A dependência fornecerá as classes e métodos necessários para interagir com a API do Twilio. Lembre-se de importar as classes relevantes no seu código

```
<dependency>
    <groupId>com.twilio.sdk</groupId>
    <artifactId>twilio</artifactId>
    <version>8.17.0</version>
</dependency>
```

**Configuração das credenciais do Twilio**

No arquivo application.properties ou application.yml do Spring Boot, adicione as seguintes propriedades:

```
twilio.accountSid=YOUR_ACCOUNT_SID
twilio.authToken=YOUR_AUTH_TOKEN
twilio.phoneNumber=YOUR_PHONE_NUMBER
```

Substitua YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN e YOUR_PHONE_NUMBER pelas suas credenciais e número de telefone que o Twilio forneceu.

Abaixo temos o objeto que vamos usar na nossa Request.

```
public class SMSRequest {
    private String to;       // Número de telefone de destino
    private String message;  // Mensagem de texto a ser enviada
 
    // Getters e setters
  
}
```
Crie um controlador Spring para enviar mensagens de texto.

```
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SMSController {

    private final TwilioService twilioService;

    @Autowired
    public SMSController(TwilioService twilioService) {
        this.twilioService = twilioService;
    }

    @PostMapping("/send-sms")
    public void sendSMS(@RequestBody SMSRequest request) {
        twilioService.sendSMS(request.getTo(), request.getMessage());
    }
}
```

Na camada de serviço é onde tudo ira acontecer, iremos realizar a chamada para o serviço do Twilio passando nossas credenciais que criamos no site do [Twilio](https://www.twilio.com/en-us)

Repare que no objeto SMSRequest temos a variável “To” que sera usada para armazenar o numero de telefone que queremos enviar a mensagem de texto.

```
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class TwilioService {

    @Value("${twilio.accountSid}")
    private String accountSid;

    @Value("${twilio.authToken}")
    private String authToken;

    @Value("${twilio.phoneNumber}")
    private String phoneNumber;

    public void sendSMS(String to, String message) {
        Twilio.init(accountSid, authToken);

        Message.creator(
                new PhoneNumber(to),
                new PhoneNumber(phoneNumber),
                message
        ).create();
    }
}
```

**Testando o envio de mensagens.**

Inicie o servidor Spring Boot e envie uma solicitação POST para a rota /send-sms, passando o número de telefone de destino e a mensagem no corpo da solicitação. Conforme o exemplo abaixo:

```
{
    "to": "+15555555555",
    "message": "Olá! Esta é uma mensagem de teste do Twilio."
}
```

**Conclusão:**

Neste artigo, exploramos como enviar mensagens de texto com o Twilio usando Java e o framework Spring Boot. Adicionamos a biblioteca Twilio ao projeto e enviamos mensagens de texto programaticamente. O Twilio oferece uma API robusta e fácil de usar, permitindo comunicação eficiente por meio de mensagens de texto. Espero que tenha ajudado!