

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Definir preferências de mensagens SMS no Amazon SNS
<a name="sms_preferences"></a>

Use o Amazon SNS para especificar preferências para mensagens SMS. Por exemplo, é possível especificar se as entregas serão otimizadas para fins de custo ou confiabilidade, o limite de gastos mensais, como as entregas serão registradas e a inscrição em relatórios diários de uso de SMS.

Essas preferências entrarão em vigor para cada mensagem SMS que você enviar de sua conta, mas será possível substituir algumas delas quando enviar uma mensagem individual. Para obter mais informações, consulte [Publicação de mensagens SMS em um telefone celular usando o Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Configurando as preferências de mensagens SMS usando o Console de gerenciamento da AWS
<a name="sms_preferences_console"></a>

1. Faça login no [console do Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Escolha uma [região que ofereça suporte a mensagens SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. No painel de navegação, escolha **Dispositivo móvel** e **Mensagens de texto (SMS)**.

1. Na página **Mobile text messaging (SMS) [Mensagens de texto (SMS) em dispositivos móveis]**, na seção **Text messaging preferences (Preferências de mensagens de texto)**, escolha **Edit (Editar)**.

1. Na página **Editar preferências de mensagens SMS**, na seção **Detalhes**, faça o seguinte:

   1. Em **Tipo de mensagem padrão**, selecione uma das seguintes opções:
      + **Promocional**: mensagens não essenciais (por exemplo, de marketing). O Amazon SNS otimiza a entrega de mensagens para gerar o custo mais baixo.
      + **Transnacional** (padrão): mensagens urgentes que comportam transações do cliente, como senhas únicas para autenticação multifator. O Amazon SNS otimiza a entrega de mensagens para gerar a mais alta confiabilidade.

      Para obter informações sobre a definição de preços para mensagens promocionais e transacionais, consulte [Definição global de preço para SMS](https://aws.amazon.com/sns/sms-pricing/).

   1. (Opcional) Em **Limite de gastos da conta**, insira a quantidade máxima (em dólares americanos) que você deseja gastar em mensagens SMS a cada mês.
**Importante**  
Por padrão, a cota de gasto é definida como 1,00 USD. Se desejar aumentar a cota de serviço, [envie uma solicitação](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Se o valor definido no console exceder sua cota de serviço, o Amazon SNS interromperá a publicação de mensagens SMS.
Como o Amazon SNS é um sistema distribuído, ele interromperá o envio de mensagens SMS minutos depois que a cota de gasto for excedida. Durante esse intervalo, se você continuar a enviar mensagens SMS, poderá incorrer em custos que excederão sua cota.

1. (Opcional) Em **ID do remetente padrão**, insira um ID personalizado, como a marca de sua empresa, que será exibido como o remetente do dispositivo receptor.
**nota**  
Support para remetente IDs varia de acordo com o país.

1. (Opcional) Digite o **Amazon S3 bucket name for usage reports** (Nome do bucket do Amazon S3 para relatórios de uso).
**nota**  
A política de bucket do Amazon S3 deve conceder acesso de gravação ao Amazon SNS.

1. Escolha **Salvar alterações**.

## Definindo preferências (AWS SDKs)
<a name="sms_preferences_sdk"></a>

Para definir suas preferências de SMS usando um dos AWS SDKs, use a ação nesse SDK que corresponde à `SetSMSAttributes` solicitação na API do Amazon SNS. Com essa solicitação, você atribui valores para os diferentes atributos de SMS, como sua cota de gasto mensal e seu tipo de SMS padrão (promocional ou transacional). Para todos os atributos de SMS, consulte [Definir SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) na *referência da API do Amazon Simple Notification Service*.

Os exemplos de código a seguir mostram como usar o `SetSMSAttributes`.

------
#### [ C\+\+ ]

**SDK para C\+\+**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 
Como usar o Amazon SNS para definir o atributo padrãoSMSType .  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Para obter detalhes da API, consulte [Definir SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) na *referência AWS SDK para C\+\+ da API*. 

------
#### [ CLI ]

**AWS CLI**  
**Para definir atributos de mensagens SMS**  
O exemplo `set-sms-attributes` a seguir define o ID do remetente padrão para mensagens SMS como `MyName`.  

```
aws sns set-sms-attributes \
    --attributes {{DefaultSenderID=MyName}}
```
Este comando não produz saída.  
+  Para obter detalhes da API, consulte [Definir SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) na *Referência de AWS CLI Comandos*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Para obter detalhes da API, consulte [Definir SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) na *referência AWS SDK for Java 2.x da API*. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Crie o cliente em um módulo separado e exporte-o.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importe o SDK e os módulos do cliente e chame a API.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Para obter mais informações, consulte o [Guia do desenvolvedor do AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Para obter detalhes da API, consulte [Definir SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) na *referência AWS SDK para JavaScript da API*. 

------
#### [ PHP ]

**SDK para PHP**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [Repositório de exemplos de código da AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Para obter mais informações, consulte o [Guia do desenvolvedor do AWS SDK para PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#set-sms-attributes). 
+  Para obter detalhes da API, consulte [Definir SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) na *referência AWS SDK para PHP da API*. 

------

## Configurar preferências de mensagens SMS para entrega específica do país
<a name="sms_preferences_country_specific"></a>

Você pode gerenciar e controlar seu tráfego de SMS enviando mensagens somente para países de destino específicos. Isso garante que suas mensagens sejam enviadas somente para países aprovados, evitando cobranças indesejadas por SMS. As instruções a seguir usam a configuração do Amazon Pinpoint Protect para especificar os países que você deseja permitir ou bloquear.

1. Abra o AWS SMS console em [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. No painel de navegação, em **Visão geral**, na seção **Início rápido**, escolha **Criar uma configuração de proteção**.

1. Em **Detalhes da configuração de proteção**, insira um **nome comercial adequado** para sua configuração de proteção (por exemplo, Allow-Only-AU).

1. Em **Regras de país do SMS**, marque a caixa de seleção **Região/País** para bloquear o envio de mensagens para todos os países compatíveis.

1. Desmarque as caixas de seleção dos países para onde você deseja enviar mensagens. **Por exemplo, para permitir mensagens somente para a Austrália, desmarque a caixa de seleção para a Austrália.**

1. Na seção **Proteger associações de configuração**, em **Tipo de associação**, selecione **Conta padrão**. Isso garantirá que a configuração do AWS End User Messaging SMS Protect afete todas as mensagens enviadas por meio do Amazon SNS, do [Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) Cognito e da chamada de API do Amazon Pinpoint. [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)

1. Selecione **Criar** para salvar suas configurações.

   A seguinte mensagem de confirmação é exibida:

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

1. Faça login no console [do Amazon SNS](https://console.aws.amazon.com/sns/home).

1. [**Publique uma mensagem**](sns-publishing.md) em um dos países bloqueados, como a Índia.

   A mensagem não será entregue. Você pode verificar isso nos registros de falha de entrega usando [CloudWatch](sms_stats_cloudwatch.md). Pesquise um grupo de registros **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**para obter uma resposta semelhante ao exemplo a seguir:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```