> For the complete documentation index, see [llms.txt](https://help.blazon.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.blazon.im/guias/guias-do-produto/configurando-um-provedor-de-sms.md).

# Configurando um provedor de SMS

A configuração de um provedor de SMS é bastante versátilno Blazon e esse documento demonstra alguns exemplos para melhor entendimento.

### Público alvo deste guia

Analista de IAM, ou qualquer outro profissional que será responsável pela administração do Blazon.

### O que é este guia?

Este guia tem como objetivo fornecer as informações necessárias e o direcionamento para que você possa configurar os elementos de um provedor de SMS.

Os exemplos a seguir se baseiam nas informações de configuração descritas na página [Provedor de SMS](https://docs.blazon.im/administrador/mais-opcoes/configuracoes-gerais/sms#configurando-um-provedor-sms) na documentação do **Administrador**.

### O que este guia não é?

Esse guia não tem como objetivo ser um guia definitivo sobre as configurações de provedor de SMS, ou seja, ele apenas cita exemplos de configurações comuns das buscas.

## Exemplos das configurações

Essa seção exemplifica algumas possibilidades de configurações para os elementos do procedor de SMS:

* Parâmetros de *query*,
* Segurança,
* Cabeçalhos,
* Body e&#x20;
* Retornos.

### Exemplo de configuração dos parâmetros de *query*

Na tabela abaixo tem-se 3 parâmetros de query exemplificando essas configurações em um provedor de SMS.

| Nome     | Valor          |
| -------- | -------------- |
| username | ${\[username]} |
| token    | ${\[token]}    |
| role     | manager        |

No caso acima tem-se a configuração onde os dois primeiros parâmetros usam uma expressão pra fazer **bind** com uma lista de parâmetros que são enviados ao provedor no momento do envio do SMS. O terceiro parâmetro está com seu valor literal '**manager**'.

Considerando que no momento do envio de um SMS o parâmetro **${\[username]}** seja substituido por **fulano**, e o parâmetro **${\[token]}** seja substituido por **3324** e a URL definida seja algo como **<https://sms-provider-x/send>**, tem-se a seguinte URL final:

```
https://sms-provider-x/send?username=fulano&token=3324&role=manager
```

### Exemplo de configuração de segurança

Na tabela abaixo um exemplo de configuração de autenticação básica:

| Campo   | Valor                             |
| ------- | --------------------------------- |
| Usuário | Nome de usuário para autenticação |
| Senha   | Senha para autenticação           |

### Exemplo de configuração de cabeçalhos

Exemplo de algumas configurações de cabeçalhos comuns:

| Cabeçalho       | valor            |
| --------------- | ---------------- |
| Accept          | application/json |
| Content-Type    | application/json |
| Accept-Language | \*               |
| Username        | ${\[username]}   |

Essas informações tem a configuração similar à configuração dos **Parâmetros Query** e também aceita uma **expressão Spring** com *bind* de valores.&#x20;

### Exemplo de configuração do *body*

A tabela a seguir ilustra uma configuração de corpo da mensagem usando o tipo *raw*.

| Campo      | Valor                                                                                                                                                        |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Formato    | Raw                                                                                                                                                          |
| Media type | application/json                                                                                                                                             |
| Corpo      | <p>{<br>  "telefone": "${\[to]}",<br>  "usuario": "${\[displayName]}",<br>  "mensagem": "Token de autenticação Blazon",<br>  "token": "${\[token]}"<br>}</p> |

Observe o uso de **expressão Spring** para fazer *bind* de variáveis.

### Exemplo de configuração de retornos

Como exemplo da configuração de retornos possíveis, tem-se abaixo, uma configuração de três retornos:&#x20;

#### 1. Exemplo de "retorno" do tipo código HTTP:

| Campo    | Valor       |
| -------- | ----------- |
| Tipo     | Código HTTP |
| Valor    | 200         |
| Status   | Sucesso     |
| Situação | OK          |

#### 2. Exemplo de "retorno" do tipo script beanShell:

| Campo    | Valor                                          |
| -------- | ---------------------------------------------- |
| Tipo     | Script                                         |
| Valor    | return **httpResponse**.httpCodeStatus == 404; |
| Status   | Falha                                          |
| Situação | Not found                                      |

{% hint style="info" %}

#### Nota

No exemplo acima o **script beanShell** irá comparar o código de retorno da mensagem HTTP com o valor 404.
{% endhint %}

#### 3. Exemplo de "retorno" padrão (Default)

| Campo    | Valor   |
| -------- | ------- |
| Tipo     | DEFAULT |
| Valor    | -       |
| Status   | Sucesso |
| Situação | OK      |
