

**Aviso de fim do suporte:** em 30 de outubro de 2026, AWS encerrará o suporte para o Amazon Pinpoint. Após 30 de outubro de 2026, você não poderá mais acessar o console do Amazon Pinpoint nem seus recursos (endpoints, segmentos, campanhas, jornadas e analytics). Para obter mais informações, consulte [Fim do suporte do Amazon Pinpoint](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Observação:** APIs relacionados a SMS, voz, push móvel, OTP e validação de número de telefone não são afetados por essa alteração e são compatíveis com o AWS End User Messaging.

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á.

# Tutoriais
<a name="tutorials"></a>

Os tutoriais nesta seção são projetados para mostrar aos novos usuários do Amazon Pinpoint como executar várias tarefas importantes. Se o Amazon Pinpoint é novidade para você ou se não conhece determinados recursos, estes tutoriais serão um bom ponto de partida.

Os tutoriais neste guia incluem tarefas destinadas a um público de desenvolvedores ou administradores de sistemas. Estes tutoriais mostram como executar tarefas usando a API do Amazon Pinpoint, os AWS SDKs e a AWS CLI. 

**Topics**
+ [Uso do Postman com o Amazon Pinpoint](tutorials-using-postman.md)
+ [Configurar um sistema de registro de SMS](tutorials-two-way-sms.md)

# Tutorial: como usar o Postman com a API do Amazon Pinpoint
<a name="tutorials-using-postman"></a>

O Postman é uma ferramenta popular para testes APIs em um ambiente easy-to-use gráfico. Você pode usar o Postman para enviar solicitações de API para qualquer API REST e para receber respostas para suas solicitações. Usar o Postman é uma maneira conveniente de testar e solucionar problemas em chamadas feitas para a API do Amazon Pinpoint. Este tutorial inclui procedimentos para configurar e usar o Postman com o Amazon Pinpoint.

**nota**  
O Postman foi desenvolvido por uma empresa terceirizada. Não é compatível e não é desenvolvido pela Amazon Web Services (AWS). Para saber mais sobre como usar o Postman ou obter assistência para problemas relacionados, consulte o [Centro de suporte](https://support.postman.com/hc/en-us) no site do Postman.

## Sobre este tutorial
<a name="tutorials-using-postman-about"></a>

Esta seção contém uma visão geral deste tutorial.

**Público-alvo**  
Este tutorial é destinado a desenvolvedores e implementadores de sistemas. Você não precisa estar familiarizado com o Amazon Pinpoint nem com o Postman para concluir as etapas deste tutorial. É necessário saber gerenciar as políticas do IAM e modificar exemplos de código JSON.

Os procedimentos neste tutorial foram criados para impedir que novos usuários utilizem operações de API que possam excluir permanentemente recursos do Amazon Pinpoint. Os usuários avançados podem remover essa restrição modificando a política que está associada aos seus usuários do .

**Atributos usados**  
Este tutorial inclui exemplos de uso para o seguinte recurso do Amazon Pinpoint:
+ Interação com a API do Amazon Pinpoint usando o Postman

**Tempo necessário**  
Ele levará aproximadamente 15 minutos para ser concluído.

**Restrições regionais**  
Não há restrições regionais associadas ao uso desta solução.

**Custos pelo uso de recursos**  
Não há cobrança pela criação de uma AWS conta. No entanto, ao implementar essa solução, você poderá incorrer em custos de AWS uso se usar o Postman para fazer o seguinte:
+ Enviar e-mail, SMS ou mensagens de voz ou por push para dispositivos móveis
+ Criar e enviar campanhas
+ Usar o recurso de validação de número de telefone

Para obter mais informações sobre as cobranças associadas ao uso do Amazon Pinpoint, consulte [Definição de preços do Amazon Pinpoint](https://aws.amazon.com/pinpoint/pricing/).

# Pré-requisitos para usar o Postman com o Amazon Pinpoint
<a name="tutorials-using-postman-prerequisites"></a>

Antes de começar este tutorial, conclua os seguintes pré-requisitos:
+ Você deve ter uma conta da AWS. Para criar uma conta da AWS, acesse [https://console.aws.amazon.com/](https://console.aws.amazon.com/) e escolha **Criar uma nova conta da AWS**.
+ Certifique-se de que a conta que você usa para entrar no Console de gerenciamento da AWS possa criar novas políticas e perfis do IAM.
+ Certifique-se de ter criado pelo menos um projeto de amostra que tenha o e-mail ativado e uma identidade de e-mail verificada. Consulte [Criação de um projeto do Amazon Pinpoint com suporte a e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) no *Guia do usuário do Amazon Pinpoint*.
+ Verifique se você tem um ID de conta da AWS. O ID da conta da AWS pode ser encontrado no canto superior direito do console ou usando a interface de linha de comandos (CLI). Consulte [Como encontrar o ID da conta da AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ É preciso baixar e instalar o Postman no computador. Você pode baixar o Postman no [site do Postman](https://www.getpostman.com).
+ Depois de instalar o Postman no computador, você deve criar uma conta nele. Quando você inicia o aplicativo do Postman pela primeira vez, é solicitado que você faça login ou crie uma conta. Siga as instruções fornecidas pelo Postman para fazer login em sua conta ou criar uma se ainda não tiver.

**Próximo**: [criar políticas e perfis do IAM](tutorials-using-postman-iam-user.md)

# Criar perfis e políticas do IAM para uso com o Amazon Pinpoint
<a name="tutorials-using-postman-iam-user"></a>

Quando você usa o Postman para testar a API do Amazon Pinpoint, a primeira etapa é criar um usuário. Nesta seção, você cria uma política que permite que os usuários interajam com todos os recursos do Amazon Pinpoint. Depois, você cria um usuário e anexa a política diretamente a ele.

## Criar uma política do IAM.
<a name="tutorials-using-postman-iam-user-create-policy"></a>

Saiba como criar uma política do IAM. Usuários e funções que usam essa política podem interagir com todos os recursos na API do Amazon Pinpoint. Ele também fornece acesso a recursos associados à API de e-mail do Amazon Pinpoint, bem como à API de SMS e voz do Amazon Pinpoint.

**Para criar a política**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Na seção **Editor de políticas**, escolha **JSON**. Exclua qualquer JSON atual no **Editor de políticas** para que fique em branco. Copie e cole o seguinte JSON no editor de **políticas e, em seguida, no editor** de **políticas**, substitua todas as instâncias de *123456789012* pelo seu Conta da AWS ID.

   Seu Conta da AWS ID pode ser encontrado no canto superior direito do console, ou você pode usar a CLI, consulte [Encontrando o ID da sua AWS conta](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
**nota**  
Para proteger os dados na sua conta do Amazon Pinpoint, essa política inclui apenas permissões de leitura, criação e modificação de recursos. Ela não inclui permissões que permitem excluir recursos. Você pode modificar essa política usando o editor visual no console do IAM. Para obter mais informações, consulte [Gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no Guia do usuário do IAM. Você também pode usar a [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)operação na API do IAM para atualizar essa política.  
Além disso, essa política inclui permissões para a interação com os serviços `ses` e `sms-voice`, além do serviço `mobiletargeting`. As permissões `ses` e `sms-voice` permitem que você interaja com a API de e-mail do Amazon Pinpoint e a API de SMS e voz do Amazon Pinpoint, respectivamente. As permissões `mobiletargeting` permitem que você interaja com a API do Amazon Pinpoint.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:Update*",
                   "mobiletargeting:Get*",
                   "mobiletargeting:Send*",
                   "mobiletargeting:Put*",
                   "mobiletargeting:Create*"
               ],
               "Resource": [
                   "arn:aws:mobiletargeting:*:123456789012:apps/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/campaigns/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/segments/*"
               ]
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:TagResource",
                   "mobiletargeting:PhoneNumberValidate",
                   "mobiletargeting:ListTagsForResource",
                   "mobiletargeting:CreateApp"
               ],
               "Resource": "arn:aws:mobiletargeting:*:123456789012:*"
           },
           {
               "Sid": "VisualEditor2",
               "Effect": "Allow",
               "Action": [
                   "ses:TagResource",
                   "ses:Send*",
                   "ses:Create*",
                   "ses:Get*",
                   "ses:List*",
                   "ses:Put*",
                   "ses:Update*",
                   "sms-voice:SendVoiceMessage",
                   "sms-voice:List*",
                   "sms-voice:Create*",
                   "sms-voice:Get*",
                   "sms-voice:Update*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   Escolha **Próximo**.

1. Em **Nome da política**, insira um nome para a política, como **PostmanAccessPolicy**. Selecione **Criar política**.

1. (Opcional) Você pode adicionar tags à política selecionando **Adicionar tag**.

1. Escolha **Próximo: revisar**.

## Criar um usuário do IAM
<a name="tutorials-using-postman-iam-user-create-user"></a>

**Atenção**  
Os usuários do IAM têm credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários.

Depois de criar a política, você pode criar um usuário e anexar a política a ele. Ao criar o usuário, o IAM fornece um conjunto de credenciais que permitem que o Postman execute operações da API do Amazon Pinpoint.

**Para criar o usuário**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No console do IAM, no painel de navegação, selecione **Usuários** e, depois, **Criar usuários**.

1. Em **Detalhes do usuário**, em **Nome do usuário**, insira um nome que identifique o usuário, como **PostmanUser**. Escolha **Próximo**.

1. Em **Definir permissões**, em **Opções de permissões**, escolha **Anexar políticas diretamente**. 

1. Em **Políticas de permissões**, escolha a política (**PostmanAccessPolicy**) que você criou em [Criar uma política do IAM](#tutorials-using-postman-iam-user-create-policy). Escolha **Próximo**.

1. Na página **Revisar e criar**, você tem a opção de adicionar tags que ajudam a identificar o usuário. Para obter mais informações sobre o uso de tags, consulte [Marcar recursos do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*. 

1. Quando você estiver pronto para criar o usuário, escolha **Create user (Criar usuário)**.

## Criar chaves de acesso
<a name="tutorials-using-postman-iam-user-create-key"></a>

**Atenção**  
Este cenário precisa de usuários do IAM com acesso programático e credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários. As chaves de acesso podem ser atualizadas, se necessário. Para obter mais informações, consulte [Atualizar chaves de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html) no *Guia do usuário do IAM*.

 O IAM fornece um conjunto de credenciais que você pode usar para permitir que o Postman realize operações de API do Amazon Pinpoint.

**Para criar o usuário**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console do IAM, selecione **Usuários**. Selecione o usuário (**PostmanUser**) criado em [Criar um usuário do IAM](#tutorials-using-postman-iam-user-create-user) e, em seguida, selecione a guia **Credenciais de segurança**.

1. Na seção **Chaves de acesso**, escolha **Criar chave de acesso**.

1. Na página **Práticas recomendadas e alternativas para chaves de acesso**, selecione **Aplicação executada fora da AWS**. 

   Escolha **Próximo**.

1. (Opcional) Você pode adicionar uma tag de descrição à política.

1. Selecione **Create access key (Criar chave de acesso)**.

1. Na página **Recuperar chaves de acesso**, copie as credenciais mostradas nas colunas **ID de chave de acesso** e **(Chave de acesso secreta)**.
**nota**  
Será necessário fornecer o ID de chave de acesso e a chave de acesso secreta posteriormente neste tutorial. Esta é a única vez que você poderá visualizar a chave de acesso secreta. Recomendamos que você copie e salve-a em um local seguro.

1. Depois de salvar as duas chaves, escolha **Concluído**.

**Próximo**: [Configurar o Postman](tutorials-using-postman-configuration.md)

# Configurar o Postman para uso com o Amazon Pinpoint
<a name="tutorials-using-postman-configuration"></a>

Agora que você criou um usuário que pode acessar a API do Amazon Pinpoint, é possível configurar o Postman. Nesta seção, você cria um ou mais ambientes no Postman. Em seguida, importe uma coleção que contenha um modelo de solicitação para cada uma das operações na API do Amazon Pinpoint.

## Criar um espaço de trabalho do Postman
<a name="tutorials-using-postman-configuration-create-workspace"></a>

No Postman, um *espaço de trabalho* é um contêiner organizacional para projetos e ambientes. Nesta seção, você criará pelo menos um espaço de trabalho para usar com o Amazon Pinpoint.

**Criar um espaço de trabalho**

No Postman, vá até o campo de mais ações, escolha **Arquivo** e, depois, **Novo**.

1. Na janela **Criar novo**, escolha **Espaço de trabalho**.

1. Insira um nome, um resumo e defina a visibilidade como pessoal. Em seguida, escolha **Criar espaço de trabalho**.

## Criar ambientes do Postman
<a name="tutorials-using-postman-configuration-create-environments"></a>

No Postman, um *ambiente* é um conjunto de variáveis que são armazenadas como pares de chave-valor. Você pode usar ambientes para alterar a configuração das solicitações feitas por meio do Postman, sem precisar alterar as próprias solicitações da API.

Nesta seção, você criará pelo menos um ambiente para usar com o Amazon Pinpoint. Cada ambiente que você cria contém um conjunto de variáveis que são específicas para sua conta em uma única Região da AWS. Se você usar os procedimentos nesta seção para criar mais de um ambiente, poderá alternar facilmente entre Regiões, escolhendo um ambiente diferente no menu **Ambiente** no Postman.

**Para criar um ambiente**

1. No Postman, vá até o menu de mais ações, escolha **Arquivo** e, depois, **Novo**.

1. Na janela **Create New (Criar novo)**, escolha **Environment (Ambiente)**.

1. Na janela **MANAGE ENVIRONMENTS (GERENCIAR AMBIENTES)**, de **Environment Name (Nome do ambiente)**, insira **Amazon Pinpoint - *Region Name***. *Region Name*Substitua por um dos seguintes valores:
   + Leste dos EUA (N. da Virgínia)
   + Oeste dos EUA (Oregon)
   + Ásia-Pacífico (Mumbai)
   + Ásia-Pacífico (Sydney)
   + Europa (Frankfurt)
   + Europa (Irlanda)
**nota**  
No mínimo, você só precisa criar um ambiente para um único Região da AWS, que Região da AWS deve conter um projeto. Se você não criou um projeto em um dos listados anteriormente Regiões da AWS, consulte [Criação de um projeto do Amazon Pinpoint com suporte por e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) no Guia do usuário do *Amazon Pinpoint*.

1. Crie seis novas variáveis: `endpoint`, `region`, `serviceName`, `accountId`, `accessKey` e `secretAccessKey`. Use a tabela a seguir para determinar qual valor inserir nas colunas **Valor inicial** e **Valor atual** para cada variável.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/tutorials-using-postman-configuration.html)

   Depois de criar essas variáveis, a janela **MANAGE ENVIRONMENTS (GERENCIAR AMBIENTES)** é semelhante ao exemplo mostrado na imagem a seguir.  
![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Postman_Tutorial_2.1_4.png)

   Ao concluir, escolha **Salvar**.
**Importante**  
As chaves de acesso mostradas na imagem anterior são fictícias. Não compartilhe suas chaves de acesso do IAM com outras pessoas.  
O Postman inclui recursos que permitem compartilhar e exportar ambientes. Se você usar esses recursos, tenha o cuidado de não compartilhar seu ID de chave de acesso e chave de acesso secreta com ninguém que não tenha acesso a essas credenciais.  
Para obter mais informações, consulte [Práticas recomendadas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

1. (Opcional) Repita as etapas de 1 a 4 para cada ambiente adicional que você deseja criar.
**dica**  
No Postman, você pode criar quantos ambientes forem necessários. Você pode usar ambientes das seguintes maneiras:  
Crie um ambiente separado para cada Região onde você precisa testar a API do Amazon Pinpoint.
Crie ambientes associados a diferentes Contas da AWS.
Crie ambientes que usam credenciais associadas a outro usuário.

1. Ao terminar de criar ambientes, vá para a próxima seção.

## Criar uma coleção do Amazon Pinpoint no Postman
<a name="tutorials-using-postman-configuration-create-pinpoint-collection"></a>

No Postman, uma *coleção* é um grupo de solicitações de API. Solicitações em uma coleção geralmente são unidas por um propósito comum. Nesta seção, você criará uma coleção que contém um modelo de solicitação para cada operação na API do Amazon Pinpoint.

**Como criar a coleção do Amazon Pinpoint**

1. No Postman, vá até o menu de mais ações, escolha **Arquivo** e, depois, **Importar**.

1. Na janela **Importar, escolha Importar** **do link** e, em seguida, insira o seguinte URL: [https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon](https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon%20Pinpoint.postman_collection.json) %20Pinpoint.postman\$1collection.json. 

   Escolha **Importar**. O Postman importa a coleção do Amazon Pinpoint, que contém 120 solicitações de exemplo.

## Testar a configuração do Postman
<a name="tutorials-using-postman-configuration-test-operation"></a>

Depois de importar a coleção do Amazon Pinpoint, recomenda-se um teste rápido para garantir que todos os componentes estejam configurados corretamente. Você pode testar sua configuração enviando uma solicitação `GetApps`. Essa solicitação retorna uma lista de todos os projetos existentes na sua conta do Amazon Pinpoint na Região da AWS atual. Como essa solicitação não exige nenhuma configuração adicional, trata-se de uma boa maneira de testar a configuração.

**Como testar a configuração da coleção do Amazon Pinpoint**

1. No painel de navegação à esquerda, selecione **Coleções**, expanda a coleção do **Amazon Pinpoint** e expanda a pasta **Aplicativos**.

1. Na lista de solicitações, escolha **GetApps**.

1. Use o seletor **Ambiente** para escolher o ambiente que você criou em [Criar ambientes do Postman](#tutorials-using-postman-configuration-create-environments).

1. Selecione **Enviar**. Se a solicitação for enviada com sucesso, o painel de resposta mostrará um status de `200 OK`. Você verá uma resposta que é semelhante ao exemplo na imagem a seguir.  
![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Postman_Tutorial_2.3_3.png)
**nota**  
Se você não tiver nenhum projeto criado no Região da AWS , o Amazon Pinpoint retornará. `{ "Item": [] }`

   Essa resposta mostra uma lista de todos os projetos do Amazon Pinpoint que existem na sua conta na Região escolhida na etapa 3.

### Solução de problemas
<a name="tutorials-using-postman-configuration-test-operation-troubleshooting"></a>

Ao enviar sua solicitação, talvez você veja um erro. Consulte a lista a seguir para ver vários erros comuns que você pode encontrar e as etapas que você pode seguir para resolvê-los.


| Mensagem de erro | Problema | Resolução | 
| --- | --- | --- | 
|  Could not get any response Houve um erro na conexão com https://%7B%7Bendpoint%7D%7D/v1/apps.  |  Não há um valor atual para a variável `{{endpoint}}`, que é definida quando você escolhe um ambiente.  | Use o seletor de ambiente para escolher um ambiente. | 
|  O token de segurança incluído na solicitação é inválido.  |  O Postman não conseguiu encontrar o valor atual de seu ID de chave de acesso ou chave de acesso secreta.  |  Escolha o ícone de engrenagem perto do seletor de ambiente e escolha o ambiente atual. Certifique-se de que os valores `accessKey` e `secretAccessKey` apareçam nas colunas **VALOR INICIAL** e **VALOR ATUAL** e que você tenha inserido as credenciais corretamente.  | 
|  “Mensagem”: “Usuário: arn:aws:iam: :123456789012:user/ não está autorizado a realizar: mobiletargeting: on resource: arn:aws:mobiletargeting:us-west- 2:123456789012PinpointPostmanUser: \$1” GetApps   |  A política do IAM associada ao seu usuário não incluem as permissões apropriadas.  |  Certifique-se de que seu usuário tenha as permissões descritas em [Criar uma política do IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy) e que você forneceu as credenciais corretas ao criar o ambiente em [Criar um espaço de trabalho do Postman](#tutorials-using-postman-configuration-create-environments).  | 

**Próximo**: [Enviar solicitações adicionais](tutorials-using-postman-sample-requests.md)

# Enviar solicitações para a API do Amazon Pinpoint
<a name="tutorials-using-postman-sample-requests"></a>

Ao terminar de configurar e testar o Postman, você poderá começar a enviar solicitações adicionais para a API do Amazon Pinpoint. Esta seção inclui informações que você precisa saber antes de iniciar o envio de solicitações. Isso também inclui dois exemplos de solicitações que descrevem como usar a coleção Amazon Pinpoint.

**Importante**  
Ao concluir os procedimentos desta seção, você enviará solicitações para a API do Amazon Pinpoint. Essas solicitações criam recursos em sua conta do Amazon Pinpoint, modificam recursos existentes, enviam mensagens, alteram a configuração de seus projetos do Amazon Pinpoint e usam outros recursos do Amazon Pinpoint. Tenha cuidado ao executar essas solicitações.

## Exemplos na coleção do Amazon Pinpoint Postman
<a name="tutorials-using-postman-sample-requests-about"></a>

Você precisa configurar a maioria das operações na coleção do Amazon Pinpoint Postman para usá-las. Para as operações `GET` e `DELETE`, normalmente, você só precisa modificar as variáveis definidas na guia **Pre-request Script (Script de pré-solicitação)**.

**nota**  
Ao usar a política do IAM que é mostrada em [Criar uma política do IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy), você não pode executar nenhuma das solicitações `DELETE` incluídas nesta coleção.

Por exemplo, a operação `GetCampaign` exige que você especifique um `projectId` e um `campaignId`. Na guia **Pre-request Script (Script de pré-solicitação)**, essas variáveis estão presentes e são preenchidas com valores de exemplo. Exclua os valores de exemplo e substitua-os pelos valores apropriados para a campanha e o projeto do Amazon Pinpoint.

Dessas variáveis, a mais comumente usada é a variável `projectId`. O valor dessa variável deve ser o identificador exclusivo para o projeto ao qual sua solicitação se aplica. Para obter uma lista desses identificadores para seus projetos, consulte a resposta à solicitação `GetApps` que você enviou na etapa anterior deste tutorial. Nessa resposta, o campo `Id` fornece o identificador exclusivo de um projeto. Para saber mais sobre a operação `GetApps` e o significado de cada campo na resposta, consulte [Aplicativos](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps.html) na *Referência de API do Amazon Pinpoint*.

**nota**  
No Amazon Pinpoint, um “projeto” é o mesmo que um “app” ou “aplicativo”.

Para as operações `POST` e `PUT`, você também precisa modificar o corpo da solicitação para incluir os valores que você deseja enviar para a API. Por exemplo, quando envia uma solicitação `CreateApp`, que é uma solicitação `POST`, é necessário especificar um nome para o projeto que você criar. É possível modificar a solicitação na guia **Body (Corpo)**. Neste exemplo, substitua o valor ao lado de `"Name"` pelo nome do projeto. Se quiser adicionar tags ao projeto, especifique-os no objeto `tags`. Ou, se não desejar adicionar tags, exclua todo o objeto `tags`.

**nota**  
A operação `UntagResource` também exige que você especifique parâmetros de URL. Você pode especificar esses parâmetros na guia **Params (Parâmetros)**. Substitua os valores na coluna **VALUE (Valor)** pelas tags que você deseja excluir para o recurso especificado.

## Exemplo de solicitação: criar um projeto com a operação `CreateApp`
<a name="tutorials-using-postman-sample-requests-createapp"></a>

Antes de criar segmentos e campanhas no Amazon Pinpoint, primeiro você precisa criar um projeto. No Amazon Pinpoint, um *projeto* consiste em segmentos, campanhas, configurações e dados unidos por um propósito comum. Por exemplo, você pode usar um projeto para conter todo o conteúdo relacionado a um determinado aplicativo ou a uma marca ou iniciativa de marketing específica. Quando você adiciona informações do cliente ao Amazon Pinpoint, essas informações são associadas a um projeto.

**Para criar um projeto enviando uma solicitação de CreateApp API**

1. No menu **Ambientes**, escolha Região da AWS aquele em que você deseja criar o projeto.  
![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Postman_Tutorial_Environments.png)

    Neste exemplo, o Postman foi configurado para que o menu **Environments (Ambientes)** mostre as quatro opções a seguir:
   + Leste dos EUA (N. da Virgínia)
   + Oeste dos EUA (Oregon)
   + Europa (Frankfurt)
   + Europa (Irlanda)

1. Na pasta **Apps**, escolha a **CreateApp**operação>.  
![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Postman_Tutorial_3.2_2.png)

   A pasta **Aplicativos** na coleção Amazon Pinpoint Postman foi expandida e mostra as seguintes solicitações:
   + `GetApp`
   + `GetApps`
   + `CreateApp`
   + `DeleteApp`

1. Na guia **Body (Corpo)**, ao lado de `"Name"`, substitua o valor do espaço reservado (`"string"`) por um nome para a campanha, como **"MySampleProject"**.

1. Exclua a vírgula depois do nome da campanha e, depois, exclua o objeto `tags` inteiro nas linhas de 3 a 5. Ao terminar, sua solicitação deverá se parecer com o exemplo mostrado no trecho de código a seguir.

   ```
   {
       "Name": "MySampleProject"
   }
   ```

   O Postman é configurado para enviar a solicitação como uma carga JSON bruta.

1. Selecione **Enviar**. Se a campanha for criada com êxito, o painel de resposta mostrará o status `201 Created`.

   ```
   {
       "Name": "MySampleProject"
       "Id": "12345678901234567890123456789012",
       "Arn": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/12345678901234567890123456789012",
       "tags": {}
   }
   ```

## Exemplo: enviar um e-mail usando a operação `SendMessages`
<a name="tutorials-using-postman-sample-requests-sendmessages"></a>

É muito comum usar a API `SendMessages` do Amazon Pinpoint para enviar mensagens transacionais. Uma vantagem de enviar mensagens usando a API `SendMessages` em vez de criar campanhas é que você pode usar a API para enviar mensagens para qualquer endereço, como um endereço de e-mail, número de telefone ou token de dispositivo. O endereço para o qual você enviar mensagens não precisa existir em sua conta do Amazon Pinpoint. Compare esse método com o envio de mensagens por meio da criação de campanhas. Antes de enviar uma campanha no Amazon Pinpoint, você deve adicionar endpoints à sua conta do Amazon Pinpoint, criar segmentos, criar a campanha e realizar a campanha.

O exemplo nesta seção mostra como enviar uma mensagem de e-mail transacional diretamente para um determinado endereço de e-mail. Você pode modificar essa solicitação para enviar mensagens por meio de outros canais, como SMS, push ou voz para dispositivos móveis.

**Para enviar uma mensagem de e-mail enviando uma SendMessages solicitação**

1. Verifique se o canal de e-mail está habilitado para o projeto e se o endereço de e-mail ou domínio que você deseja usar para enviar e receber a mensagem está configurado. Para obter mais informações, consulte [Ativação e desativação do canal de e-mail](pinpoint/latest/userguide/channels-email-setup.html) e [Verificação de identidades de e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html) no *Guia do usuário do Amazon Pinpoint*.
**nota**  
Para concluir o procedimento desta seção, você precisa verificar um endereço de e-mail

1. No menu **Ambientes**, escolha Região da AWS aquele do qual você deseja enviar a mensagem.

   Neste exemplo, o Postman foi configurado para que o menu **Environments (Ambientes)** mostre as quatro opções a seguir:
   + Leste dos EUA (N. da Virgínia)
   + Oeste dos EUA (Oregon)
   + Europa (Frankfurt)
   + Europa (Irlanda)

1. Na pasta **Mensagens**, escolha a **SendMessages**operação.  
![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Postman_Tutorial_3.3_3.png)

1. Na guia **Pre-request Script (Script de pré-solicitação)**, substitua o valor da variável `projectId` pelo ID de um projeto que já existe na região que você selecionou na etapa 2 desta seção.

1. Na guia **Body (Corpo)**, exclua a solicitação de exemplo que é mostrada no editor de solicitações. Cole o seguinte código:

   ```
   {
       "MessageConfiguration":{
           "EmailMessage":{
               "FromAddress":"sender@example.com",
               "SimpleEmail":{
                   "Subject":{
                       "Data":"Sample Amazon Pinpoint message"
                   },
                   "HtmlPart":{
                       "Data":"<h1>Test message</h1><p>This is a sample message sent from <a href=\"https://aws.amazon.com/pinpoint\">Amazon Pinpoint</a> using the SendMessages API.</p>"
                   },
                   "TextPart":{
                       "Data":"This is a sample message sent from Amazon Pinpoint using the SendMessages API."
                   }
               }
           }
       },
       "Addresses":{
           "recipient@example.com": {
               "ChannelType": "EMAIL"
           }
       }
   }
   ```

1. No código anterior, substitua pelo seu endereço *sender@example.com* de e-mail verificado. *recipient@example.com*Substitua pelo endereço de e-mail verificado para o qual você deseja enviar a mensagem.
**nota**  
Se sua conta ainda estiver na sandbox de e-mails do Amazon Pinpoint, você só poderá enviar e-mails de endereços ou domínios verificados na sua conta do Amazon Pinpoint. Para obter mais informações sobre como remover a conta da sandbox, consulte [Solicitar acesso de produção para e-mail no](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-production-access.html) no *Guia do usuário do Amazon Pinpoint*.

1. Selecione **Enviar**. Se a mensagem for enviada com êxito, o painel de respostas mostrará o status `200 OK`.

   ```
   {
       "ApplicationId": "12345678901234567890123456789012",
       "RequestId": "<sampleValue>",
       "Result": {
           "recipient@example.com": {
               "DeliveryStatus": "SUCCESSFUL",
               "StatusCode": 200,
               "StatusMessage": "<sampleValue>",
               "MessageId": "<sampleValue>"
           }
       }
   }
   ```

# Configurar um sistema de registro de SMS no Amazon Pinpoint
<a name="tutorials-two-way-sms"></a>

Mensagens SMS (mensagens de texto) são uma ótima forma de enviar mensagens urgentes para seus clientes usando o Amazon Pinpoint. A maioria das pessoas estão sempre com o celular por perto, e as mensagens SMS tendem a atrair mais a atenção das pessoas do que as notificações por push, e-mails ou telefonemas.

Uma maneira comum de capturar os números de celular de um cliente é usar um formulário na Web. Depois de verificar o número de telefone do cliente e confirmar sua assinatura, você pode começar a enviar mensagens SMS promocionais, transacionais e informativas para esse cliente.

Este tutorial mostra como configurar um formulário da Web para capturar informações de contrato de um cliente. O formulário da Web envia essas informações para o Amazon Pinpoint. Em seguida, o Amazon Pinpoint verifica se o número de telefone é válido e captura outros metadados relacionados ao número de telefone. Depois disso, o Amazon Pinpoint envia ao cliente uma mensagem solicitando a confirmação da assinatura. Depois que o cliente confirma sua assinatura, o Amazon Pinpoint opta por receber suas mensagens.

O diagrama de arquitetura a seguir mostra o fluxo de dados nessa solução.

![\[\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Architecture.png)


## Sobre a ativação dupla
<a name="tutorials-two-way-sms-double-opt-in"></a>

Este tutorial mostra como configurar um sistema de inclusão dupla no Amazon Pinpoint que usa mensagens SMS bidirecionais.

Em um sistema de inclusão dupla por SMS, um cliente fornece seu número de telefone enviando-o em um formulário da Web ou em seu aplicativo. Quando você recebe a solicitação do cliente, cria um endpoint no Amazon Pinpoint. O novo endpoint deve ser excluído de suas comunicações. Em seguida, você envia uma mensagem para esse número de telefone. Em sua mensagem, você solicita ao destinatário que confirme sua assinatura respondendo com uma palavra ou frase específica (como "Sim" ou "Confirmar"). Se o cliente responder à mensagem com a palavra ou frase que você especificou, você alterará o status do endpoint para incluído. Caso contrário, se o cliente não responder ou responder com uma palavra ou frase diferente, você poderá deixar o endpoint com o status de não incluído.

## Sobre esta solução
<a name="tutorials-two-way-sms-about"></a>

Esta seção contém informações sobre a solução que você está criando neste tutorial.

**Público-alvo**  
Este tutorial é destinado a públicos-alvo de desenvolvedores e implementadores de sistemas. Você não precisa estar familiarizado com o Amazon Pinpoint para concluir as etapas deste tutorial. No entanto, você deve se sentir à vontade para gerenciar políticas do IAM, criar funções do Lambda no Node.js e implantar conteúdo da Web.

**Atributos usados**  
Este tutorial inclui exemplos de uso dos seguintes recursos do Amazon Pinpoint:
+ Envio de mensagens SMS transacionais
+ Obtenção de informações sobre números de telefone usando a validação do número de telefone
+ Mensagens SMS recebidas usando mensagens SMS bidirecionais
+ Criação de segmentos dinâmicos
+ Criação de campanhas
+ Interagindo com a API do Amazon Pinpoint usando AWS Lambda

**Tempo necessário**  
Deve levar cerca de uma hora para concluir este tutorial. Depois de implementar essa solução, há etapas adicionais que você pode seguir para refinar a solução para se adequar ao seu caso de uso exclusivo.

**Restrições regionais**  
Este tutorial exige que você arrende um código longo usando o console do Amazon Pinpoint. Você pode usar o console do Amazon Pinpoint para arrendar códigos longos dedicados com base em vários países. No entanto, somente os códigos longos baseados no Canadá podem ser usados para enviar mensagens SMS. (Você pode usar códigos longos baseados em outros países e regiões para enviar mensagens de voz.)

Desenvolvemos os exemplos de código neste tutorial com essa restrição em mente. Por exemplo, os exemplos de código supõem que o número de telefone do destinatário sempre tem 10 dígitos e um código de país de 1. Se você implementar essa solução nos países ou regiões dos Estados Unidos ou Canadá, será necessário modificar os exemplos de código adequadamente.

**Custos pelo uso de recursos**  
Não há cobrança pela criação de uma AWS conta. No entanto, ao implementar essa solução, pode haver os seguintes custos:
+ **Custos de arrendamento de código longo**: para concluir este tutorial, você precisa arrendar um código longo. Códigos longos baseados no Canadá custam USD 1,00 por mês.
+ **Uso de validação do número de telefone**: a solução neste tutorial usa o recurso de validação do número de telefone do Amazon Pinpoint para verificar se cada número recebido é válido e formatado corretamente e para obter informações adicionais sobre o número de telefone. Você paga 0,006 USD para cada solicitação de validação de número de telefone.
+ **Custos de envio de mensagens**: a solução neste tutorial envia mensagens SMS de saída. Você paga por cada mensagem enviada por meio do Amazon Pinpoint. O preço que você paga por cada mensagem depende do país ou região do destinatário. Se você enviar mensagens para destinatários nos Estados Unidos (excluindo os territórios dos EUA), pagará 0,00645 USD por mensagem. Se você enviar mensagens para destinatários no Canadá, pagará entre USD 0,001090 e USD 0,02, dependendo da operadora e do local do destinatário.
+ **Custos de recebimento de mensagens**: esta solução também recebe e processa mensagens SMS recebidas. Você paga por cada mensagem recebida enviada para números de telefone associados à sua conta do Amazon Pinpoint. O preço que você paga depende do local em que o número de telefone de recebimento é baseado. Se o seu número de recebimento for baseado nos Estados Unidos (excluindo os territórios dos EUA), você pagará 0,0075 USD por mensagem recebida. Se o seu número é baseado no Canadá, você pagará 0,00155 USD por mensagem recebida.
+ **Uso do Lambda**: esta solução usa duas funções do Lambda que interagem com a API do Amazon Pinpoint. Quando você chama uma função do Lambda, você é cobrado com base no número de solicitações de suas funções, pelo tempo para execução de seu código e pela quantidade de memória usada por suas funções. As funções neste tutorial usam pouca memória e geralmente são executadas por 1 a 3 segundos. Alguns ou todos os seus usos desta solução podem se enquadrar no nível de uso gratuito do Lambda. Para obter mais informações, consulte [Preço do Lambda](https://aws.amazon.com/lambda/pricing/).
+ **Uso do API Gateway**: o formulário da web nesta solução chama uma API gerenciada pelo API Gateway. Para cada milhão de chamadas para o API Gateway, você paga de 3,50 a 3,70 USD, dependendo da região em que você AWS usa o Amazon Pinpoint. Para obter mais informações, consulte [Preços do API Gateway](https://aws.amazon.com/api-gateway/pricing/).
+ **Custos de hospedagem na Web**: esta solução inclui um formulário baseado na web que você precisa hospedar em seu site. O preço que você paga pela hospedagem desse conteúdo depende do provedor de hospedagem na Web.

**nota**  
Todos os preços apresentados nesta lista são em dólares americanos (USD).

**Próximo**: [pré-requisitos](tutorials-two-way-sms-prereqs.md)

# Pré-requisitos para configurar o SMS no Amazon Pinpoint
<a name="tutorials-two-way-sms-prereqs"></a>

Antes de começar este tutorial, você precisa concluir os seguintes pré-requisitos:
+ Você precisa ter uma conta da AWS. Para criar uma conta da AWS, acesse [https://console.aws.amazon.com/](https://console.aws.amazon.com/) e escolha **Criar uma nova conta da AWS**.
+ A conta que você usa para entrar no Console de gerenciamento da AWS deve ser capaz de executar as seguintes tarefas:
  + Criar políticas e perfis do IAM
  + Criar novos projetos do Amazon Pinpoint
  + Criar novas funções do Lambda
  + Criar novas APIs no API Gateway
+ É necessário ter um método para hospedar e publicar páginas da web. Embora você possa usar os serviços da AWS para hospedar as páginas da Web, não é necessário. 
**dica**  
Para saber mais sobre como hospedar páginas da Web usando os serviços da AWS, consulte [Hospedar um site estático](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

**Próximo**: [configurar o Amazon Pinpoint](tutorials-two-way-sms-part-1.md)

# Configurar o SMS no Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1"></a>

Antes de configurar mensagens SMS, é preciso um projeto do Amazon Pinpoint. Nesta seção, faça o seguinte:
+ Crie um projeto do Amazon Pinpoint
+ Ative o canal SMS e alugue um número de telefone
+ Configure mensagens SMS bidirecionais

Antes de começar, revise todos os [pré-requisitos](tutorials-two-way-sms-prereqs.md).

## Crie um projeto do Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1-create-project"></a>

Para começar, é preciso criar um projeto do Amazon Pinpoint. No Amazon Pinpoint, um *projeto* consiste em segmentos, campanhas, configurações e dados unidos por um propósito comum. Por exemplo, você pode usar um projeto para conter todo o conteúdo relacionado a um determinado aplicativo ou a uma marca ou iniciativa de marketing específica. Quando você adiciona informações do cliente ao Amazon Pinpoint, essas informações são associadas a um projeto.

As etapas envolvidas na criação de um projeto diferem dependendo se você criou um projeto no Amazon Pinpoint anteriormente.

### Criação de um projeto (novos usuários do Amazon Pinpoint)
<a name="tutorials-two-way-sms-part-1-create-project-opt-1"></a>

Essas etapas descrevem o processo de criação de um novo projeto Amazon Pinpoint caso você nunca tenha criado um projeto na região atual AWS .

**Para criar um projeto**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Use o seletor de região para escolher a AWS região que você deseja usar, conforme mostrado na imagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.  
![\[A lista suspensa Região mostrando Leste dos EUA (Norte da Virgínia) selecionada.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Region_Selector.png)

1. Em **Get started (Conceitos básicos)**, em **Name (Nome)**, insira um nome para a campanha (como **SMSRegistration**) e escolha **Create project (Criar projeto)**.

1. Na página **Configurar atributos**, escolha **Ignorar esta etapa**.

1. No painel de navegação, selecione **All projects (Todos os projetos)**.

1. Na página **All projects (Todos os projetos)**, ao lado do projeto recém-criado, copie o valor mostrado na coluna **Project ID (ID do projeto)**.
**dica**  
Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID do projeto em um local conveniente para que você possa copiá-lo mais tarde.

### Criar um projeto (usuários existentes do Amazon Pinpoint)
<a name="tutorials-two-way-sms-part-1-create-project-opt-2"></a>

Essas etapas descrevem o processo de criação de um novo projeto Amazon Pinpoint se você já tiver criado projetos na região atual AWS .

**Para criar um projeto**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Use o seletor de região para escolher a AWS região que você deseja usar, conforme mostrado na imagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.  
![\[A lista suspensa Região mostrando Leste dos EUA (Norte da Virgínia) selecionada.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/Region_Selector.png)

1. Na página **Todos os projetos**, escolha **Criar um novo projeto**.

1. Na janela **Create a project (Criar um projeto)**, em **Project name (Nome do projeto)**, insira um nome para o projeto (como **SMSRegistration**). Escolha **Criar**.

1. Na página **Configurar atributos**, escolha **Ignorar esta etapa**.

1. No painel de navegação, selecione **All projects (Todos os projetos)**.

1. Na página **All projects (Todos os projetos)**, ao lado do projeto recém-criado, copie o valor mostrado na coluna **Project ID (ID do projeto)**.
**dica**  
Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID do projeto em um local conveniente para que você possa copiá-lo mais tarde.

## Obter um número de telefone dedicado
<a name="tutorials-two-way-sms-part-1-set-up-channel"></a>

**nota**  
O Guia do usuário do Amazon Pinpoint foi atualizado. Para obter as informações mais recentes sobre como criar, configurar e gerenciar os recursos de SMS e voz, consulte o novo [Guia do usuário do AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html). 

Depois de criar um projeto, você pode começar a configurar recursos nesse projeto. Nesta seção, você habilita o canal de SMS e obtém um número de telefone dedicado para enviar mensagens SMS.

**nota**  
Esta seção pressupõe que você esteja alugando um número de telefone 10DLC dos Estados Unidos após o registro da marca e da campanha, um número gratuito dos Estados Unidos ou um código longo do Canadá. Se você seguir os procedimentos desta seção, mas escolher um país diferente dos Estados Unidos ou do Canadá, não poderá usar esse número para enviar mensagens SMS. Para saber mais sobre como arrendar códigos longos compatíveis com SMS em outros países além dos Estados Unidos ou do Canadá, consulte [Supported countries and regions (SMS channel)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) no *Guia do usuário do AWS End User Messaging SMS*.

Para habilitar o canal de SMS usando o console do Amazon Pinpoint, siga estas etapas:

**Habilitar canal de SMS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. No painel de navegação, em **Configurações**, selecione **SMS e voz**.

1. Ao lado de **SMS settings (Configurações de SMS)**, escolha **Edit (Editar)**.

1. Em **General settings (Configurações gerais)**, selecione **Enable the SMS channel for this project (Habilitar o canal de SMS para este projeto)** e depois **Save changes (Salvar alterações)**.

Para solicitar um número de telefone usando o console AWS End User Messaging SMS, siga estas etapas:

**Solicitar um número de telefone (console)**

1. Abra o console SMS do AWS End User Messaging em [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).
**nota**  
Certifique-se de solicitar um número de telefone no mesmo em Região da AWS que você criou seu projeto Amazon Pinpoint.

1. No painel de navegação, em **Configurações**, selecione **Números de telefone** e, depois, **Solicitar originador**.

1. Na página **Selecionar país** para **País de destino da mensagem**, escolha Estados Unidos ou Canadá. Escolha **Próximo**.

1. Na seção **Caso de uso de mensagens**, faça o seguinte:
   + Em **Recursos numéricos**, selecione **SMS**.
**Importante**  
Os recursos de SMS e voz não podem ser alterados após a compra do número de telefone.
   + Em **Mensagens bidirecionais**, selecione **Sim**.

1. Escolha **Próximo**.

1. Em **Selecionar tipo de originador**, selecione **Código longo** ou **10DLC**.

   Se você selecionar 10DLC e já tiver uma campanha registrada, poderá escolher a campanha em **Associado a campanha registrada**.

1. Escolha **Próximo**.

1. Em **Revisar e solicitar**, é possível verificar e editar a solicitação antes de enviá-la. Escolha **Solicitar**.

1. A janela **Registro obrigatório** pode aparecer dependendo do tipo de número de telefone solicitado. O número de telefone está associado a esse registro e você não pode enviar mensagens até que ele seja aprovado. Para obter mais informações sobre os requisitos de registro, consulte [Registros](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

   1. Em **Nome do formulário de inscrição**, insira um nome amigável.

   1. Selecione **Iniciar registro** para concluir o registro do número de telefone ou **Registrar mais tarde**.
**Importante**  
O número de telefone não poderá enviar mensagens até o registro ser aprovado.  
 Você ainda receberá a cobrança da taxa de locação mensal recorrente do número de telefone, independentemente do status do registro. Para obter mais informações sobre os requisitos de registro, consulte [Registros](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

## Habilitar SMS bidirecional
<a name="tutorials-two-way-sms-part-1-enable-two-way"></a>

Agora que você tem um número de telefone dedicado, poderá configurar o SMS bidirecional. A habilitação do SMS bidirecional possibilita que seus clientes respondam às mensagens SMS que você envia a eles. Nesta solução, você usa SMS bidirecional para dar aos seus clientes uma maneira de confirmar que eles desejam se inscrever em seu programa de SMS.

Para habilitar o SMS bidirecional usando o console AWS End User Messaging SMS, siga estas etapas:

**Habilitar SMS bidirecional**

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

1. No painel de navegação, em **Configurações**, selecione **Números de telefone**.

1. Na página **Números de telefone**, selecione um número.

1. Na guia **SMS bidirecional**, clique no botão **Editar configurações**.

1. Na página **Editar configurações**, selecione **Habilitar mensagem bidirecional**.

1. Em **Destino**, selecione **Amazon SNS**.
   + **Novo tópico do Amazon SNS** — AWS End User Messaging SMS cria um tópico em sua conta. O tópico é criado automaticamente com todas as permissões necessárias. Para obter mais informações sobre os tópicos do Amazon SNS, consulte [Configurar o Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-configuring.html) no *Guia do desenvolvedor do Amazon SNS*. 
   + Em **Destino da mensagem recebida**, insira um nome de tópico, como **SMSRegistrationFormTopic**.

1. Em **Perfil de canal bidirecional**, selecione **Usar políticas de tópicos do SNS**.

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

Use o console AWS End User Messaging SMS para adicionar palavras-chave ao seu número de telefone que os clientes enviam para você para confirmar suas assinaturas (como **Yes** ou**Confirm**).

**Adicionar uma palavra-chave**

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

1. No painel de navegação, em **Configurações**, selecione **Número de telefone**.

1. Na página **Número de telefone**, selecione o número de telefone ao qual adicionar uma palavra-chave.

1. Na guia **Palavras-chave**, selecione o botão **Adicionar palavra-chave**.

1. No painel **Palavra-chave personalizada**, adicione o seguinte:
   + **Palavra-chave**: a nova palavra-chave a ser adicionada (como **Yes** ou **Confirm**).
   + **Mensagem de resposta**: a mensagem a ser enviada de volta ao destinatário.
   + **Ação de palavra-chave**: a ação a ser executada quando a palavra-chave é recebida. Selecione **Resposta automática**.

1. Selecione **Adicionar palavra-chave**.

**Próximo**: [criar políticas e perfis do IAM](tutorials-two-way-sms-part-2.md)

# Criar perfis e políticas do IAM para uso com SMS no Amazon Pinpoint
<a name="tutorials-two-way-sms-part-2"></a>

A próxima etapa na implementação da solução de registro de SMS no Amazon Pinpoint é configurar uma política e uma função no AWS Identity and Access Management (IAM). No caso dessa solução, será preciso criar uma política que forneça acesso a determinados recursos relacionados ao Amazon Pinpoint. Crie uma função e anexe a política a ela. Posteriormente neste tutorial, você cria uma AWS Lambda função que usa essa função para chamar determinadas operações na API do Amazon Pinpoint.

## Criar uma política do IAM.
<a name="tutorials-two-way-sms-part-2-create-policy"></a>

Esta seção mostra como criar uma política do IAM. Usuários e funções que usam essa política podem fazer o seguinte:
+ Usar o recurso de validação de número de telefone
+ Visualize, crie e atualize endpoints do Amazon Pinpoint
+ Envie mensagens para endpoints do Amazon Pinpoint

Neste tutorial, você deseja dar ao Lambda a capacidade de executar essas tarefas. Contudo, para obter maior segurança, essa política usa o princípio de conceder o *privilégio mínimo*. Em outras palavras, ele concede apenas as permissões necessárias para concluir essa solução e não mais. Essa política é restrita das seguintes formas:
+ Você só pode usá-lo para chamar a API de validação de número de telefone em uma região específica.
+ Você só pode usá-la para exibir, criar ou atualizar endpoints associados a um projeto específico do Amazon Pinpoint.
+ Você só pode usá-la para enviar mensagens para endpoints associados a um projeto específico do Amazon Pinpoint.

**Para criar a política**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Na guia **JSON**, cole o seguinte código.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:CreateLogGroup"
               ],
               "Resource": "arn:aws:logs:*:*:*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:SendMessages",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:GetEndpoint",
                   "mobiletargeting:UpdateEndpoint",
                   "mobiletargeting:PutEvents"
               ],
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/endpoints/*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:PhoneNumberValidate",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:phone/number/validate"
           }
       ]
   }
   ```

------

   No exemplo anterior, faça o seguinte:
   + *region*Substitua pela AWS região em que você usa o Amazon Pinpoint, como `us-east-1` ou. `eu-central-1`
**dica**  
Para obter uma lista completa das AWS regiões em que o Amazon Pinpoint está disponível, consulte [AWS regiões e endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) no. *Referência geral da AWS*
   + *accountId*Substitua pelo ID exclusivo da sua AWS conta.
   + *projectId*Substitua pelo ID exclusivo do projeto que você criou em [Criar um projeto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) deste tutorial.
**nota**  
As `logs` ações permitem que o Lambda registre sua saída em CloudWatch Logs.

1. Escolha **Próximo**.

1. Em **Nome da política**, insira um nome para a política, como **RegistrationFormPolicy**. Selecione **Criar política**.

## Criar um perfil do IAM
<a name="tutorials-two-way-sms-part-2-create-role"></a>

**Para criar o perfil**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console do IAM, selecione **Perfis** e, depois, **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **Serviço da AWS ** e, em **Serviço ou caso de usuário**, escolha **Lambda** na lista suspensa.

1. Escolha **Próximo**.

1. Em **Política de permissões**, escolha ou procure a política que você criou na seção anterior, depois escolha **Próximo**.

1. Em **Detalhes do perfil**, em **Nome do perfil** insira um nome exclusivo para o perfil, como **SMSRegistrationForm**. Selecione **Criar perfil**.

**Próximo**: [criar funções Lambda](tutorials-two-way-sms-part-3.md)

# Criar funções do Lambda para uso com mensagens SMS do Amazon Pinpoint
<a name="tutorials-two-way-sms-part-3"></a>

Esta seção mostra como criar e configurar duas funções do Lambda para uso com o sistema de mensagens SMS do Amazon Pinpoint. Depois, você configurará o API Gateway e o Amazon Pinpoint para invocar essas funções quando determinados eventos ocorrerem. Ambas as funções criam e atualizam endpoints no projeto do Amazon Pinpoint que você especifica. A primeira função também usa o recurso de validação do número de telefone.

## Criar a função que valida as informações do cliente e cria endpoints
<a name="tutorials-two-way-sms-part-3-create-register-function"></a>

A primeira função usa detalhes do seu formulário de registro, que recebe do Amazon API Gateway. Ela usa essas informações para obter informações sobre o número de telefone do cliente usando o atributo de [validação do número de telefone](https://docs.aws.amazon.com/pinpoint/latest/developerguide/validate-phone-numbers.html) do Amazon Pinpoint. Depois, a função usa os dados validados para criar um endpoint no projeto do Amazon Pinpoint que você especificar. Por padrão, o endpoint que a função cria é cancelado em suas futuras comunicações, mas esse status pode ser alterado pela segunda função. Por fim, essa função envia ao cliente uma mensagem solicitando que ele verifique se deseja receber suas comunicações por SMS.

**Para criar a função do Lambda**

1. Abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha a opção **Criar função**.

1. Em **Criar uma função**, escolha **Usar um esquema**.

1. No campo de pesquisa, digite **hello** e pressione Enter. Na lista de resultados, escolha a função do Node.js `hello-world`, como mostra a imagem a seguir.   
![\[A página Criar função mostrando Usar um esquema selecionado.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.5.png)

1. Em **Basic information** (Informações básicas), faça o seguinte:
   + Em **Name (Nome)**, insira um nome para a função, como **RegistrationForm**.
   + Em **Role (Função)**, selecione **Choose an existing role (Escolher uma função existente)**.
   + Em **Função existente**, escolha a função de **SMSRegistrationformulário** que você criou em [Criar uma função do IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Ao concluir, selecione **Create function (Criar função)**.

1. Em **Origem do código** exclua a função de exemplo no editor de código e cole o código a seguir:

   ```
   import { PinpointClient, PhoneNumberValidateCommand, UpdateEndpointCommand, SendMessagesCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   const pinClient = new PinpointClient({region: process.env.region});  
   
   // Make sure the SMS channel is enabled for the projectId that you specify.
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-setup.html
   var projectId = process.env.projectId;
   
   // You need a dedicated long code in order to use two-way SMS. 
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-voice-manage.html#channels-voice-manage-request-phone-numbers
   var originationNumber = process.env.originationNumber;
   
   // This message is spread across multiple lines for improved readability.
   var message = "ExampleCorp: Reply YES to confirm your subscription. 2 msgs per "
               + "month. No purchase req'd. Msg&data rates may apply. Terms: "
               + "example.com/terms-sms";
               
   var messageType = "TRANSACTIONAL";
   
   export const handler = async (event, context) => {
     console.log('Received event:', event);
     await validateNumber(event);
   };
   
   async function validateNumber (event) {
     var destinationNumber = event.destinationNumber;
     if (destinationNumber.length == 10) {
       destinationNumber = "+1" + destinationNumber;
     }
     var params = {
       NumberValidateRequest: {
         IsoCountryCode: 'US',
         PhoneNumber: destinationNumber
       }
     };
     try{
       const PhoneNumberValidateresponse = await pinClient.send( new  PhoneNumberValidateCommand(params));
       console.log(PhoneNumberValidateresponse);
        if (PhoneNumberValidateresponse['NumberValidateResponse']['PhoneTypeCode'] == 0) {
           await createEndpoint(PhoneNumberValidateresponse, event.firstName, event.lastName, event.source);
           
         } else {
           console.log("Received a phone number that isn't capable of receiving "
                      +"SMS messages. No endpoint created.");
         }
     }catch(err){
       console.log(err);
     }
   }
   
   async function createEndpoint(data, firstName, lastName, source) {
     var destinationNumber = data['NumberValidateResponse']['CleansedPhoneNumberE164'];
     var endpointId = data['NumberValidateResponse']['CleansedPhoneNumberE164'].substring(1);
     
     var params = {
       ApplicationId: projectId,
       // The Endpoint ID is equal to the cleansed phone number minus the leading
       // plus sign. This makes it easier to easily update the endpoint later.
       EndpointId: endpointId,
       EndpointRequest: {
         ChannelType: 'SMS',
         Address: destinationNumber,
         // OptOut is set to ALL (that is, endpoint is opted out of all messages)
         // because the recipient hasn't confirmed their subscription at this
         // point. When they confirm, a different Lambda function changes this 
         // value to NONE (not opted out).
         OptOut: 'ALL',
         Location: {
           PostalCode:data['NumberValidateResponse']['ZipCode'],
           City:data['NumberValidateResponse']['City'],
           Country:data['NumberValidateResponse']['CountryCodeIso2'],
         },
         Demographic: {
           Timezone:data['NumberValidateResponse']['Timezone']
         },
         Attributes: {
           Source: [
             source
           ]
         },
         User: {
           UserAttributes: {
             FirstName: [
               firstName
             ],
             LastName: [
               lastName
             ]
           }
         }
       }
     };
     try{
       const UpdateEndpointresponse = await pinClient.send(new UpdateEndpointCommand(params));
       console.log(UpdateEndpointresponse);
       await sendConfirmation(destinationNumber);
     }catch(err){
       console.log(err);
     }  
   }
   
   async function sendConfirmation(destinationNumber) {
     var params = {
       ApplicationId: projectId,
       MessageRequest: {
         Addresses: {
           [destinationNumber]: {
             ChannelType: 'SMS'
           }
         },
         MessageConfiguration: {
           SMSMessage: {
             Body: message,
             MessageType: messageType,
             OriginationNumber: originationNumber
           }
         }
       }
     };
     try{
       const SendMessagesCommandresponse = await pinClient.send(new SendMessagesCommand(params));
       console.log("Message sent! " 
             + SendMessagesCommandresponse['MessageResponse']['Result'][destinationNumber]['StatusMessage']);
     }catch(err){
       console.log(err);
     }
   }
   ```

1. Na guia **Configuração** das **Variáveis de ambiente**, escolha **Editar**, depois **Adicionar variável de ambiente**, faça o seguinte:
   + Na primeira linha, crie uma variável com uma chave de **originationNumber**. Em seguida, defina o valor para o número de telefone do código longo dedicado que você recebeu na [Etapa 1.2](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**nota**  
Não deixe de incluir o sinal de mais (\$1) e o código do país para o número de telefone. Não inclua outros caracteres especiais, como traços (-), pontos (.) ou parênteses.
   + Na segunda linha, crie uma variável com uma chave de **projectId**. Em seguida, defina o valor para o ID exclusivo do projeto que você criou na [Etapa 1.1](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + Na terceira linha, crie uma variável com uma chave de **region**. Em seguida, defina o valor para a região em que você usa o Amazon Pinpoint, como **us-east-1** ou **us-west-2**.

   Quando você terminar, a seção **Environment Variables (Variáveis de ambiente)** deve ser semelhante ao exemplo mostrado na imagem a seguir.  
![\[As variáveis de ambiente para originationNumber, projectId e region.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.7.png)

1. Na parte superior da página, escolha **Save (Salvar)**.

### Testar a função
<a name="tutorials-two-way-sms-part-3-create-register-function-test"></a>

Depois de criar a função, você deve testá-la para verificar se está configurada corretamente. Além disso, verifique se o perfil do IAM que você criou tem as permissões apropriadas.

**Para testar a função**

1. Selecione a guia **Testar**.

1. Escolha **Criar novo evento** e faça o seguinte:
   + Em **Event name (Nome do evento)**, insira um nome para o evento de teste, como **MyPhoneNumber**.
   + Apague o código de exemplo no editor de código. Cole o seguinte código:

     ```
     {
       "destinationNumber": "+12065550142",
       "firstName": "Carlos",
       "lastName": "Salazar",
       "source": "Registration form test"
     }
     ```
   + No exemplo de código anterior, substitua os valores dos atributos `destinationNumber`, `firstName` e `lastName` pelos valores que você deseja usar para teste, como seus detalhes de contato pessoais. Ao testar essa função, ele envia uma mensagem SMS para o número de telefone especificado por você no atributo `destinationNumber`. Certifique-se de que o número de telefone especificado possa receber mensagens SMS.
   + Escolha **Criar**.

1. Escolha **Testar**.

1. Em **Execution result: succeeded (Resultado de execução: bem-sucedido)**, selecione **Details (Detalhes)**. Na seção **Log output (Resultado de saída do log)**, analise a saída da função. Certifique-se de que a função foi executada sem erros.

   Verifique o dispositivo associado ao `destinationNumber` que você especificou para garantir que recebeu a mensagem de teste.

1. Abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Na página **Todos os projetos**, escolha o projeto que você criou em [Criar um projeto do Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. No painel de navegação, selecione **Segmentos**. Na página **Segmentos**, selecione **Criar um segmento**.

1. Em **Segment group 1 (Grupo de segmentos 1)**, em **Add filters to refine your segment (Adicionar filtros para refinar seu segmento)**, escolha **Filter by user (Filtrar por usuário)**.

1. Em **Escolher um atributo de usuário**, escolha **FirstName**. Depois, para **Choose values (Escolha valores)**, escolha o nome que você especificou no evento de teste.

   A seção **Segment estimate (Estimativa de segmento)** deve mostrar que há zero endpoints elegíveis e um endpoint total, conforme mostrado na imagem a seguir. Tal resultado é esperado. Quando a função cria um endpoint, o endpoint é cancelado. Os segmentos no Amazon Pinpoint excluem automaticamente os endpoints excluídos.  
![\[O grupo de segmentos mostrando zero endpoints.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

## Criar a função que habilita os clientes às suas comunicações
<a name="tutorials-two-way-sms-part-3-create-optin-function"></a>

A segunda função é executada somente quando um cliente responde à mensagem enviada pela primeira função. Se a resposta do cliente inclui a palavra-chave especificada em [Habilitar SMS bidirecional](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel), a função atualiza os registros de endpoint para habilitá-lo a futuras comunicações. O Amazon Pinpoint também responde automaticamente com a mensagem que você especificou em [Habilitar SMS bidirecional](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).

Se o cliente não responder ou responder com algo diferente da palavra-chave designada, nada acontecerá. O endpoint do cliente permanece no Amazon Pinpoint, mas não pode ser direcionado por segmentos.

**Para criar a função do Lambda**

1. Abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha a opção **Criar função**.

1. Em **Create function (Criar função)**, escolha **Blueprints (Esquemas)**.

1. No campo de pesquisa, digite **hello** e pressione Enter. Na lista de resultados, escolha a função do Node.js `hello-world`, como mostra a imagem a seguir. Selecione **Configurar**.

1. Em **Basic information** (Informações básicas), faça o seguinte:
   + Em **Name (Nome)**, insira um nome para a função, como **RegistrationForm\$1OptIn**.
   + Em **Role (Função)**, selecione **Choose an existing role (Escolher uma função existente)**.
   + Em **Função existente**, escolha a função de SMSRegistration formulário que você criou em [Criar uma função do IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Ao concluir, selecione **Create function (Criar função)**.

1. Exclua a função de exemplo no editor de código e cole o código a seguir:

   ```
   import { PinpointClient, UpdateEndpointCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   
   // Create a new Pinpoint client instance with the region specified in the environment variables
   const pinClient = new PinpointClient({ region: process.env.region });
   
   // Get the Pinpoint project ID and the confirm keyword from environment variables
   const projectId = process.env.projectId;
   const confirmKeyword = process.env.confirmKeyword.toLowerCase();
   
   // This is the main handler function that is invoked when the Lambda function is triggered
   export const handler = async (event, context) => {
       console.log('Received event:', event);
   
       try {
           // Extract the timestamp, message, and origination number from the SNS event
           const timestamp = event.Records[0].Sns.Timestamp;
           const message = JSON.parse(event.Records[0].Sns.Message);
           const originationNumber = message.originationNumber;
           const response = message.messageBody.toLowerCase();
   
           // Check if the response message contains the confirm keyword
           if (response.includes(confirmKeyword)) {
               // If the confirm keyword is found, update the endpoint's opt-in status
               await updateEndpointOptIn(originationNumber, timestamp);
           }
       }catch (error) {
           console.error('An error occurred:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   };
   
   // This function updates the opt-in status of a Pinpoint endpoint
   async function updateEndpointOptIn(originationNumber, timestamp) {
       // Extract the endpoint ID from the origination number
       const endpointId = originationNumber.substring(1);
   
        // Prepare the parameters for the UpdateEndpointCommand
       const params = {
           ApplicationId: projectId,
           EndpointId: endpointId,
           EndpointRequest: {
               Address: originationNumber,
               ChannelType: 'SMS',
               OptOut: 'NONE',
               Attributes: {
                   OptInTimestamp: [timestamp]
               },
           }
       };
   
       try {
           // Send the UpdateEndpointCommand to update the endpoint's opt-in status
           const updateEndpointResponse = await pinClient.send(new UpdateEndpointCommand(params));
           console.log(updateEndpointResponse);
           console.log(`Successfully changed the opt status of endpoint ID ${endpointId}`);
       } catch (error) {
           console.error('An error occurred while updating endpoint:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   }
   ```

1. Em **Environment variables (Variáveis de ambiente)**, faça o seguinte:
   + Na primeira linha, crie uma variável com uma chave de **projectId**. Em seguida, defina o valor como o ID exclusivo do projeto que você criou em [Criar um projeto Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + Na segunda linha, crie uma variável com uma chave de **region**. Em seguida, defina o valor para a região em que você usa o Amazon Pinpoint, como **us-east-1** ou **us-west-2**.
   + Na terceira linha, crie uma variável com uma chave de **confirmKeyword**. Em seguida, defina o valor para a palavra-chave de confirmação que você criou em [Habilitar SMS bidirecional](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**nota**  
A palavra-chave não diferencia maiúsculas e minúsculas. Essa função converte a mensagem recebida em letras minúsculas.

   Quando você terminar, a seção **Environment Variables (Variáveis de ambiente)** deve ser semelhante ao exemplo mostrado na imagem a seguir.  
![\[As variáveis de ambiente para projectId, region e confirmKeyword.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step2.7.png)

1. Na parte superior da página, escolha **Save (Salvar)**.

### Testar a função
<a name="tutorials-two-way-sms-part-3-create-optin-function-test"></a>

Depois de criar a função, você deve testá-la para verificar se está configurada corretamente. Além disso, verifique se o perfil do IAM que você criou tem as permissões apropriadas.

**Para testar a função**

1. Escolha **Testar**.

1. Na janela **Configure test event (Configurar evento de teste)**, faça o seguinte:

   1. Selecione **Criar evento de teste**.

   1. Em **Event name (Nome do evento)**, insira um nome para o evento de teste, como **MyResponse**.

   1. Apague o código de exemplo no editor de código. Cole o seguinte código:

      ```
      {
        "Records":[
          {
            "Sns":{
              "Message":"{\"originationNumber\":\"+12065550142\",\"messageBody\":\"Yes\"}",
              "Timestamp":"2019-02-20T17:47:44.147Z"
            }
          }
        ]
      }
      ```

      No exemplo de código anterior, substitua os valores do atributo `originationNumber` pelo número de telefone que você usou quando você testou a função do Lambda anterior. Substitua o valor de `messageBody` pela palavra-chave SMS bidirecional especificada em [Habilitar SMS bidirecional](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). Como opção, você pode substituir o valor de `Timestamp` pela data e hora atuais.

   1. Escolha **Criar**.

1. Escolha **Test (Testar)** novamente.

1. Em **Execution result: succeeded (Resultado de execução: bem-sucedido)**, selecione **Details (Detalhes)**. Na seção **Log output (Resultado de saída do log)**, analise a saída da função. Certifique-se de que a função foi executada sem erros.

1. Abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Na página **Todos os projetos**, escolha o projeto que você criou em [Criar um projeto do Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. No painel de navegação, selecione **Segmentos**. Na página **Segmentos**, selecione **Criar um segmento**.

1. Em **Segment group 1 (Grupo de segmentos 1)**, em **Add filters to refine your segment (Adicionar filtros para refinar seu segmento)**, escolha **Filter by user (Filtrar por usuário)**.

1. Em **Escolher um atributo de usuário**, escolha **FirstName**. Depois, para **Choose values (Escolha valores)**, escolha o nome que você especificou no evento de teste.

   A seção **Segment estimate (Estimativa de segmento)** deve mostrar que há um endpoint elegível e um endpoint total.

**Próximo**: [configurar o Amazon API Gateway](tutorials-two-way-sms-part-4.md)

# Configurar o Amazon API Gateway para mensagens SMS no Amazon Pinpoint
<a name="tutorials-two-way-sms-part-4"></a>

Nesta seção, você vai criar uma API usando o Amazon API Gateway como parte do registro de SMS para o Amazon Pinpoint. O formulário de registro que você implanta nessa solução chama essa API. Em seguida, o API Gateway envia as informações capturadas no formulário de registro para a função do Lambda que você criou em [Criar funções do Lambda](tutorials-two-way-sms-part-3.md).

## Criar a API
<a name="tutorials-two-way-sms-part-4-create-api"></a>

Primeiro, é preciso criar uma API no API Gateway. Os procedimentos a seguir mostram como criar uma API REST.

**Para criar uma API**

1. Abra o console do API Gateway em [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Selecione **Criar API**. Faça as seguintes seleções:
   + Em **Choose the protocol (Escolher o protocolo)**, selecione **REST**.
   + Em **Create new API** (Criar nova API), selecione **New API** (Nova API).
   + Em **Settings (Configurações)**, para **Name (Nome)**, insira um nome, como **RegistrationForm**. Para **Description (Descrição)**, insira, como opção, algum texto que descreva o objetivo da API. Em **Endpoint Type (Tipo de endpoint)**, escolha **Regional**. Em seguida, selecione **Create API (Criar API)**.

   Um exemplo dessas configurações é mostrado na imagem a seguir.  
![\[Protocolo definido como REST, Criar nova API definido como Nova API, Nome da API definido como e Tipo de endpoint definido como Regional. RegistrationForm\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step2.png)

## Criar um recurso
<a name="tutorials-two-way-sms-part-4-create-resource"></a>

Agora que você criou uma API, é possível começar a adicionar recursos a ela. Depois disso, você adiciona um método POST ao recurso e informa ao API Gateway para transmitir os dados recebidos desse método para a função do Lambda.

1. No menu **Actions (Ações)**, escolha **Create Resource (Criar recurso)**. No painel **New Child Resource (Novo recurso filho)**, para **Resource Name (Nome do recurso)**, insira **register**, conforme mostrado na imagem a seguir. Escolha **Create Resource** (Criar recurso).  
![\[O novo painel de recursos secundários com o nome do recurso definido como registro.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step3.png)

1. No menu **Actions (Ações)**, selecione **Create Method (Criar método)**. No menu exibido, escolha **POST**, conforme mostrado na imagem a seguir. Em seguida, escolha o botão de **marca de seleção**.  
![\[O painel de criação do método com a marca de seleção selecionada.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step4.png)

1. No painel **/register - POST - Setup**, faça as seguintes seleções:
   + Em **Integration type (Tipo de integração)**, escolha **Lambda Function (Função do Lambda)**.
   + Selecione **Usar a integração de proxy do Lambda**.
   + Em **Região do Lambda**, escolha a Região na qual você criou a função do Lambda.
   + Para **Função Lambda**, escolha a RegisterEndpoint função que você criou em Criar funções [Lambda](tutorials-two-way-sms-part-3.md).

   Um exemplo dessas configurações é mostrado na imagem a seguir.  
![\[O painel /register - POST - Configuração com a Função do Lambda selecionada.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step5.png)

   Escolha **Salvar**. Na janela exibida, escolha **OK** para conceder permissão ao API Gateway para executar a função do Lambda.

## Implantar a API
<a name="tutorials-two-way-sms-part-4-deploy-api"></a>

Agora a API está pronta para uso. Nesse ponto, é preciso implantá-la para criar um endpoint publicamente acessível.

1. No menu **Actions (Ações)**, escolha **Deploy API (Implantar API)**. Na janela **Deploy API (Implantar API)**, faça as seguintes seleções:
   + Em **Estágio de implantação**, escolha **Novo estágio**.
   + Em **Stage name (Nome do estágio)**, insira **v1**.
   + Escolha **Deploy** (Implantar).

   Um exemplo dessas seleções é mostrado na imagem a seguir.  
![\[As janelas de implantação da API com o nome do Estágio definido como v1\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step6.png)

1. No painel **v1 Stage Editor (Editor do estágio v1)**, escolha o recurso **/register** e depois o método **POST**. Copie o endereço exibido ao lado de **Invoke URL Invocar URL)**, conforme mostrado na imagem a seguir.  
![\[O painel Editor de estágio v1 mostrando o URL de invocação a ser copiado\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step7.png)

1. No painel de navegação, escolha **Resources (Recursos)**. Na lista de recursos, escolha o recurso **/register**. Por fim, no menu **Actions (Ações)**, escolha **Enable CORS (Habilitar o CORS)**, conforme mostrado na imagem a seguir.  
![\[O menu suspenso de Ações mostrando que a opção Ativar CORS está selecionada\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step8.png)

1. Na painel **Enable CORS (Habilitar o CORS)**, escolha **Enable CORS and replace existing CORS headers (Habilitar o CORS e substituir os cabeçalhos do CORS existentes)**.

**Próximo**: [Criar e implantar o formulário da Web](tutorials-two-way-sms-part-5.md)

# Criar e implantar o formulário da web para usar mensagens SMS para o Amazon Pinpoint
<a name="tutorials-two-way-sms-part-5"></a>

Todos os componentes que usam AWS serviços de mensagens SMS usando o Amazon Pinpoint já estão prontos. A última etapa é criar e implantar o formulário da Web que captura os dados do cliente.

## Crie o manipulador JavaScript de formulários
<a name="tutorials-two-way-sms-part-5-create-form-handler"></a>

Nesta seção, você cria uma JavaScript função que analisa o conteúdo do formulário web criado na próxima seção. Depois de analisar o conteúdo, essa função envia os dados para a API que você criou em [Configurar o Amazon API Gateway](tutorials-two-way-sms-part-4.md).

**Para criar o manipulador de formulários**

1. Em um editor de texto, crie um novo arquivo.

1. No editor, cole o código a seguir.

   ```
   $(document).ready(function() {
   
     // Handle form submission.
     $("#submit").click(function(e) {
   
       var firstName = $("#firstName").val(),
           lastName = $("#lastName").val(),
           source = window.location.pathname,
           optTimestamp = undefined,
           utcSeconds = Date.now() / 1000,
           timestamp = new Date(0),
           phone = $("#areaCode").val()
                 + $("#phone1").val()
                 + $("#phone2").val();
   
       e.preventDefault();
   
       if (firstName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your first name.</div>');
       } else if (lastName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your last name.</div>');
       } else if (phone.match(/[^0-9]/gi)) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains invalid characters. Please check the phone number that you supplied.</div>');
       } else if (phone.length < 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your phone number.</div>');
       } else if (phone.length > 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains too many digits. Please check the phone number that you supplied.</div>');
       } else {
         $('#submit').prop('disabled', true);
         $('#submit').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');
   
         timestamp.setUTCSeconds(utcSeconds);
   
         var data = JSON.stringify({
           'destinationNumber': phone,
           'firstName': firstName,
           'lastName': lastName,
           'source': source,
           'optTimestamp': timestamp.toString()
         });
   
         $.ajax({
           type: 'POST',
           url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/register',
           contentType: 'application/json',
           data: data,
           success: function(res) {
             $('#form-response').html('<div class="mt-3 alert alert-success" role="alert"><p>Congratulations! You&apos;ve successfully registered for SMS Alerts from ExampleCorp.</p><p>We just sent you a message. Follow the instructions in the message to confirm your subscription. We won&apos;t send any additional messages until we receive your confirmation.</p><p>If you decide you don&apos;t want to receive any additional messages from us, just reply to one of our messages with the keyword STOP.</p></div>');
             $('#submit').prop('hidden', true);
             $('#unsubAll').prop('hidden', true);
             $('#submit').text('Preferences saved!');
           },
           error: function(jqxhr, status, exception) {
             $('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>');
             $('#submit').text('Save preferences');
             $('#submit').prop('disabled', false);
           }
         });
       }
     });
   });
   ```

1. No exemplo anterior, substitua pela URL *https://example.execute-api.us-east-1.amazonaws.com/v1/register* de invocação que você obteve em [Implantar a API](tutorials-two-way-sms-part-4.md#tutorials-two-way-sms-part-4-deploy-api).

1. Salve o arquivo.

## Criar o arquivo de formulário
<a name="tutorials-two-way-sms-part-5-create-form"></a>

Nesta seção, você cria um arquivo HTML que contém o formulário que os clientes usam para se inscrever no seu programa de SMS. Esse arquivo usa o manipulador de JavaScript formulários que você criou na seção anterior para transmitir os dados do formulário para sua função Lambda.

**Importante**  
Quando um usuário envia esse formulário, ele aciona uma função do Lambda que chama várias operações da API do Amazon Pinpoint. Usuários mal-intencionados podem lançar um ataque ao seu formulário que poderia provocar um grande número de solicitações. Caso você planeje usar essa solução para produção, deverá protegê-la usando um sistema como o [reCAPTCHA do Google](https://www.google.com/recaptcha/about/).

**Para criar o formulário**

1. Em um editor de texto, crie um novo arquivo.

1. No editor, cole o código a seguir.

   ```
   <!doctype html>
   <html lang="en">
   
   <head>
     <!-- Meta tags required by Bootstrap -->
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
     <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   
     <script type="text/javascript" src="SMSFormHandler.js"></script>
     <title>SMS Registration Form</title>
   </head>
   
   <body>
     <div class="container">
       <div class="row justify-content-center mt-3">
         <div class="col-md-6">
           <h1>Register for SMS Alerts</h1>
           <p>Enter your phone number below to sign up for PromotionName messages from ExampleCorp.</p>
           <p>We don't share your contact information with anyone else. For more information, see our <a href="http://example.com/privacy">Privacy Policy</a>.</p>
           <p>ExampleCorp alerts are only available to recipients in the United States.</p>
         </div>
       </div>
       <div class="row justify-content-center">
         <div class="col-md-6">
           <form>
             <div class="form-group">
               <label for="firstName" class="font-weight-bold">First name</label>
               <input type="text" class="form-control" id="firstName" placeholder="Your first name" required>
             </div>
             <div class="form-group">
               <label for="lastName" class="font-weight-bold">Last name</label>
               <input type="text" class="form-control" id="lastName" placeholder="Your last name" required>
             </div>
             <label for="areaCode" class="font-weight-bold">Phone number</label>
             <div class="input-group">
               <span class="h3">(&nbsp;</span>
               <input type="tel" class="form-control" id="areaCode" placeholder="Area code" required>
               <span class="h3">&nbsp;)&nbsp;</span>
               <input type="tel" class="form-control" id="phone1" placeholder="555" required>
               <span class="h3">&nbsp;-&nbsp;</span>
               <input type="tel" class="form-control" id="phone2" placeholder="0199" required>
             </div>
             <div id="form-response"></div>
             <button id="submit" type="submit" class="btn btn-primary btn-block mt-3">Submit</button>
           </form>
         </div>
       </div>
       <div class="row mt-3">
         <div class="col-md-12 text-center">
           <small class="text-muted">Copyright © 2019, ExampleCorp or its affiliates.</small>
         </div>
       </div>
     </div>
   </body>
   
   </html>
   ```

1. No exemplo anterior, *SMSFormHandler.js* substitua pelo caminho completo para o JavaScript arquivo manipulador de formulários que você criou na seção anterior.

1. Salve o arquivo.

## Fazer upload dos arquivos de formulário
<a name="tutorials-two-way-sms-part-5-upload-form"></a>

Agora que você criou o formulário HTML e o manipulador de JavaScript formulários, a última etapa é publicar esses arquivos na Internet. Esta seção pressupõe que você tenha um provedor de hospedagem da Web existente. Se você não tiver um provedor de hospedagem existente, poderá lançar um site usando o Amazon Route 53, o Amazon Simple Storage Service (Amazon S3) e a Amazon. CloudFront Para obter mais informações, consulte [Hospedar um site estático](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

Se você usar outro provedor de hospedagem da Web, consulte a documentação do provedor para obter mais informações sobre a publicação de páginas da Web.

## Testar o formulário
<a name="tutorials-two-way-sms-part-5-test-form"></a>

Depois de publicar o formulário, você deve enviar alguns eventos de teste para garantir que ele funcione conforme o esperado.

**Para testar o formulário de registro**

1. Em um navegador da Web, acesse o local em que carregou o formulário de registro. Se você usou o exemplo de código de [Criar o manipulador de JavaScript formulários](#tutorials-two-way-sms-part-5-create-form), verá um formulário semelhante ao exemplo na imagem a seguir.  
![\[O formulário de solicitação do cliente criado na etapa 5.1.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Form_Step5.3.1.png)

1. Insira suas informações de contato nos campos **First name (Nome)**, **Last name (Sobrenome)** e **Phone number (Número de telefone)**.
**nota**  
Quando você envia o formulário, o Amazon Pinpoint tenta enviar uma mensagem para o número de telefone que você especificou. Por causa dessa funcionalidade, você deve usar um número de telefone real para testar a solução do início ao fim.  
Se você testou a função do Lambda em [Criar funções do Lambda](tutorials-two-way-sms-part-3.md), seu projeto do Amazon Pinpoint já contém pelo menos um endpoint. Ao testar esse formulário, você deve enviar um número de telefone diferente no formulário ou excluir o endpoint existente usando a operação da [DeleteEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#DeleteEndpoint)API.

1. Verifique o dispositivo associado ao número de telefone que você especificou para garantir que recebeu a mensagem.

1. Abra o console do Amazon Pinpoint em. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Na página **Todos os projetos**, escolha o projeto que você criou em [Criar um projeto do Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. No painel de navegação, selecione **Segmentos**. Na página **Segmentos**, selecione **Criar um segmento**.

1. Em **Segment group 1 (Grupo de segmentos 1)**, em **Add filters to refine your segment (Adicionar filtros para refinar seu segmento)**, escolha **Filter by user (Filtrar por usuário)**.

1. Em **Escolher um atributo de usuário**, escolha **FirstName**. Em seguida, em **Choose values (Escolher valores)**, escolha o primeiro nome que você especificou quando enviou o formulário.

   A seção **Segment estimate (Estimativa de segmento)** deve mostrar que há zero endpoints elegíveis e um endpoint (em Total de endpoints), conforme mostrado no exemplo a seguir. Tal resultado é esperado. Quando a função do Lambda cria um endpoint, o endpoint é cancelado por padrão.  
![\[Um segmento com zero endpoints selecionados.\]](http://docs.aws.amazon.com/pt_br/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

1. No dispositivo que recebeu a mensagem, responda à mensagem com a palavra-chave por SMS bidirecional que você especificou em [Habilitar SMS bidirecional](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). O Amazon Pinpoint envia uma mensagem de resposta imediatamente.

1. No console do Amazon Pinpoint, repita as etapas de 4 a 8. Desta vez, ao criar o segmento, você verá um endpoint elegível e um endpoint total. Esse resultado é esperado, porque o endpoint agora está ativado.

# Próximas etapas
<a name="tutorials-two-way-sms-next-steps"></a>

Ao concluir este tutorial, você fez o seguinte:
+ Criou um projeto do Amazon Pinpoint, configurou o canal do SMS e obteve um código longo dedicado.
+ Criou uma política do IAM que usa o princípio do privilégio mínimo para conceder direitos de acesso e associou essa política a uma função.
+ Criou duas funções Lambda que usam as SendMessages operações PhoneNumberValidate, UpdateEndpoint, e na API do Amazon Pinpoint.
+ Criou uma API REST usando o API Gateway.
+ Criou e implantou um formulário baseado na Web que coleta informações de contato dos clientes.
+ Realizou testes na solução para ter certeza de que funciona.

Esta seção discute algumas maneiras pelas quais você pode usar as informações do cliente coletadas por meio dessa solução. Ela também inclui algumas sugestões de formas de personalizar essa solução para se adequar ao seu caso de uso exclusivo.

## Criar segmentos de clientes
<a name="tutorials-two-way-sms-next-steps-create-segments"></a>

Todos os detalhes do cliente coletados por meio desse formulário são armazenados como endpoints. Essa solução cria endpoints que contêm vários atributos que você pode usar para fins de segmentação.

Por exemplo, essa solução captura um atributo de endpoint chamado `Source`. Esse atributo contém o caminho completo para o local onde o formulário foi hospedado. Ao criar um segmento, você pode filtrar o segmento por endpoint e refinar ainda mais o filtro, escolhendo um atributo `Source`.

Criar segmentos com base no atributo `Source` pode ser útil de várias maneiras. Primeiro, isso permite que você crie rapidamente um segmento de clientes que se cadastraram para receber mensagens SMS da sua parte. Além disso, a ferramenta de segmentação no Amazon Pinpoint exclui automaticamente os endpoints que não optaram por receber mensagens.

O atributo `Source` também é útil se você decidir hospedar o formulário de registro em vários locais diferentes. Por exemplo, seu material de marketing pode se referir a um formulário hospedado em um único local, embora os clientes que encontrarem o formulário ao navegar em seu site possam ver uma versão hospedada em outro lugar. Ao fazer isso, os atributos de origem dos clientes que preenchem o formulário depois de ver seus materiais de marketing são diferentes daqueles que preenchem o formulário depois de encontrá-lo em seu site. Você pode usar essa diferença para criar segmentos distintos e enviar comunicações personalizadas para cada um desses públicos.

## Enviar mensagens de campanha personalizadas
<a name="tutorials-two-way-sms-next-steps-send-campaigns"></a>

Depois de criar segmentos, você pode começar a enviar campanhas para esses segmentos. Ao criar mensagens de campanha, você pode personalizá-las especificando quais atributos de endpoint deseja incluir na mensagem. Por exemplo, o formulário da Web usado nesta solução exige que o cliente insira seu nome e sobrenome. Esses valores são armazenados no registro do usuário associado ao endpoint.

Por exemplo, se você usar a operação da API `GetEndpoint` para recuperar informações sobre um endpoint que foi criado usando essa solução, verá uma seção semelhante ao seguinte exemplo:

```
  ...
  "User": {
    "UserAttributes": {
      "FirstName": [
        "Carlos"
      ],
      "LastName": [
        "Salazar"
      ]
    }
  }
  ...
```

Se você quiser incluir os valores desses atributos em sua mensagem de campanha, use a notação de ponto para se referir ao atributo. Depois, coloque a referência inteira entre chaves duplas. Por exemplo, para incluir o primeiro nome de cada destinatário em uma mensagem de campanha, inclua a seguinte string na mensagem: `{{User.UserAttributes.FirstName}}`. Quando o Amazon Pinpoint envia a mensagem, ela substitui a cadeia de caracteres pelo valor do atributo `FirstName`.

## Usar o formulário para coletar informações adicionais
<a name="tutorials-two-way-sms-next-steps-collect-additional"></a>

Você pode modificar essa solução para coletar informações adicionais no formulário de registro. Por exemplo, você poderia pedir ao cliente para fornecer seu endereço e usar os dados de endereço para preencher os campos `Location.City`, `Location.Country`, `Location.Region` e `Location.PostalCode` no recurso de `Endpoint`. A coleta de informações de endereço no formulário de registro pode resultar no endpoint contendo informações mais precisas. Para fazer essa alteração, você precisa adicionar os campos apropriados ao formulário da Web. Você também precisa modificar o JavaScript código do formulário para passar os novos valores. Por fim, você precisa modificar a função do Lambda que cria o endpoint para manipular as novas informações de entrada.

Você também pode modificar o formulário para que ele colete informações de contato em outros canais. Por exemplo, você pode usar o formulário para coletar o endereço de e-mail do cliente, além do número de telefone dele. Para fazer essa alteração, você precisa modificar o HTML e JavaScript o formulário da web. Também é necessário modificar a função do Lambda que cria o endpoint para que ele crie dois endpoints separados (um para o endpoint de e-mail e outro para o endpoint do SMS). Você também deve modificar a função do Lambda para que ela gere um valor exclusivo para o atributo `User.UserId` e associe esse valor a ambos os endpoints.

## Registrar atributos adicionais para fins de auditoria
<a name="tutorials-two-way-sms-next-steps-auditing"></a>

Essa solução registra dois atributos valiosos quando cria e atualiza endpoints. Primeiro, quando a primeira função do Lambda cria o endpoint, ela registra o URL do próprio formulário no atributo `Attributes.Source`. Se o cliente responder à mensagem, a segunda função do Lambda criará um atributo `Attributes.OptInTimestamp`. Esse atributo contém a data e a hora exatas em que o cliente forneceu seu consentimento para receber mensagens da sua parte.

Esses dois campos podem ser úteis se você for solicitado por uma operadora de celular ou uma agência reguladora para fornecer evidências do consentimento de um cliente. Você pode recuperar essas informações a qualquer momento usando a operação da [GetEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#GetEndpoint)API.

Você também pode modificar as funções do Lambda para registrar dados adicionais que podem ser úteis para fins de auditoria, como o endereço IP do qual a solicitação de registro foi enviada.