

**Avis de fin de support :** le 30 octobre 2026, le support d'Amazon Pinpoint AWS prendra fin. Après le 30 octobre 2026, vous ne pourrez plus accéder à la console Amazon Pinpoint ni aux ressources Amazon Pinpoint (points de terminaison, segments, campagnes, parcours et analytique). Pour plus d’informations, consultez [Fin de la prise en charge d’Amazon Pinpoint](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Remarque :** en ce qui APIs concerne les SMS, la voix, le push mobile, l'OTP et la validation des numéros de téléphone ne sont pas concernés par cette modification et sont pris en charge par AWS la messagerie utilisateur final.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Les tutoriels de cette section expliquent aux utilisateurs d'Amazon Pinpoint comment effectuer plusieurs tâches importantes. Si vous ne connaissez pas encore Amazon Pinpoint ou si certaines fonctionnalités vous sont encore inconnues, ces tutoriels sont un bon point de départ.

Les didacticiels de ce guide incluent des tâches destinées à un public de développeurs ou d'administrateurs systèmes. Ces didacticiels vous montrent comment effectuer des tâches à l'aide de l'API Amazon Pinpoint, du AWS SDKs, et du. AWS CLI

**Topics**
+ [Utiliser Postman avec Amazon Pinpoint](tutorials-using-postman.md)
+ [Mettre en place un système d'enregistrement par SMS](tutorials-two-way-sms.md)

# Tutoriel : utilisation de Postman avec l'API Amazon Pinpoint
<a name="tutorials-using-postman"></a>

Postman est un outil populaire pour les tests APIs dans un environnement easy-to-use graphique. Vous pouvez utiliser Postman pour envoyer des demandes d'API à n'importe quelle API REST et recevoir des réponses à vos demandes. Utiliser Postman est un moyen pratique pour tester et dépanner les appels à l'API Amazon Pinpoint que vous effectuez. Ce tutoriel inclut les procédures de configuration et d'utilisation de Postman avec Amazon Pinpoint.

**Note**  
Postman est développé par une entreprise tierce. Il n'est ni développé ni pris en charge par Amazon Web Services (AWS). Pour en savoir plus sur l’utilisation de Postman ou pour obtenir de l’aide sur des problèmes liés à Postman, consultez le [Centre de support](https://support.postman.com/hc/en-us) sur le site web de Postman.

## À propos de ce didacticiel
<a name="tutorials-using-postman-about"></a>

Cette section contient une vue d'ensemble de ce didacticiel.

**Public visé**  
Ce didacticiel est destiné aux développeurs et aux personnes chargées de l'implémentation du système. Vous n'avez pas besoin d'être familiarisé avec Amazon Pinpoint ou Postman pour effectuer les étapes de ce tutoriel. Vous devez être à l'aise avec la gestion des politiques IAM et la modification des exemples de code JSON.

Les procédures décrites dans ce tutoriel ont été conçues pour empêcher les nouveaux utilisateurs d'utiliser les opérations d'API qui peuvent supprimer définitivement les ressources Amazon Pinpoint. Les utilisateurs avancés peuvent supprimer cette restriction en modifiant la stratégie associée à leurs utilisateurs .

**Fonctionnalités utilisées**  
Ce tutoriel inclut des exemples d'utilisation pour les fonctionnalités Amazon Pinpoint suivantes :
+ Interaction avec l'API Amazon Pinpoint à l'aide de Postman

**Temps requis**  
Ce didacticiel dure environ 15 minutes.

**Restrictions régionales**  
Il n'y a pas de restrictions régionales associées à l'utilisation de cette solution.

**Coûts d'utilisation des ressources**  
La création d'un AWS compte est gratuite. Cependant, la mise en œuvre de cette solution peut entraîner des coûts AWS d'utilisation si vous utilisez Postman pour effectuer l'une des opérations suivantes :
+ Envoyer des e-mails, des SMS, des push mobile ou des messages vocaux
+ Créer et envoyer des campagnes
+ Utiliser la fonction de validation de numéro de téléphone

Pour plus d'informations sur les frais associés à l'utilisation d'Amazon Pinpoint, consultez [Tarification d'Amazon Pinpoint](https://aws.amazon.com/pinpoint/pricing/).

# Conditions préalables à l'utilisation de Postman avec Amazon Pinpoint
<a name="tutorials-using-postman-prerequisites"></a>

Avant de commencer le didacticiel, suivez les conditions préalables requises :
+ Vous devez avoir un AWS compte. Pour créer un AWS compte, allez sur [https://console.aws.amazon.com/](https://console.aws.amazon.com/)et choisissez **Créer un nouveau AWS compte**.
+ Assurez-vous que le compte que vous utilisez pour vous connecter AWS Management Console peut créer de nouvelles politiques et de nouveaux rôles IAM.
+ Assurez-vous d'avoir créé au moins un exemple de projet dans lequel les e-mails sont activés et dont l'identité e-mail est vérifiée. Consultez [Création d'un projet Amazon Pinpoint avec assistance par e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) dans le *Guide de l'utilisateur Amazon Pinpoint*.
+ Assurez-vous d'avoir un identifiant de AWS compte. Votre identifiant de AWS compte se trouve dans le coin supérieur droit de la console ou vous pouvez utiliser l'interface de ligne de commande (CLI). Consultez la section [Trouver l'identifiant de votre AWS compte](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Vous devez télécharger et installer Postman sur votre ordinateur. Vous pouvez télécharger Postman à partir du [site web de Postman](https://www.getpostman.com).
+ Une fois que vous avez installé Postman sur votre ordinateur, créez un compte Postman. Lorsque vous démarrez l'application Postman pour la première fois, vous êtes invité à vous connecter ou à créer un nouveau compte. Suivez les instructions fournies par Postman pour vous connecter à votre compte ou pour créer un compte si vous n'en avez pas déjà un.

**Suivant** : [Création de politiques et de rôles IAM](tutorials-using-postman-iam-user.md)

# Créez des politiques et des rôles IAM à utiliser avec Amazon Pinpoint
<a name="tutorials-using-postman-iam-user"></a>

Lorsque vous utilisez Postman pour tester l'API Amazon Pinpoint, la première étape consiste à créer un utilisateur. Dans cette section, vous créez une politique qui permet aux utilisateurs d'interagir avec toutes les ressources Amazon Pinpoint. Ensuite, vous créez un utilisateur et attachez la politique directement à l'utilisateur.

## Créer une politique IAM
<a name="tutorials-using-postman-iam-user-create-policy"></a>

Découvrez comment créer une politique IAM. Les utilisateurs et les rôles qui utilisent cette politiques peuvent interagir avec toutes les ressources de l'API Amazon Pinpoint. Elle permet également d'accéder aux ressources associées à l'API Amazon Pinpoint Email, ainsi qu'à l'API Amazon Pinpoint SMS et voix.

**Pour créer la politique**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation, sélectionnez **Politiques**, puis **Créer une politique**.

1. Dans l'**éditeur de politiques**, sélectionnez **JSON**. Supprimez tout JSON actuel dans l'**éditeur de politiques** afin qu'il soit vide. Copiez et collez le code JSON suivant dans l'**éditeur de stratégie**, puis remplacez toutes les instances de par votre Compte AWS identifiant dans *123456789012* l'**éditeur de stratégie**.

   Votre Compte AWS identifiant se trouve dans le coin supérieur droit de la console, ou vous pouvez utiliser la CLI, voir [Trouver l'identifiant de votre AWS compte](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
**Note**  
Pour protéger les données de votre compte Amazon Pinpoint, cette politique inclut uniquement les autorisations qui vous permettent de consulter, créer et modifier des ressources. Elle n'inclut pas les autorisations qui vous permettent de supprimer les ressources. Vous pouvez modifier cette politique à l'aide de l'éditeur visuel dans la console IAM. Pour plus d'informations, consultez [Gestion des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) dans le Guide de l'utilisateur IAM. Vous pouvez également utiliser l'[CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)opération dans l'API IAM pour mettre à jour cette politique.  
Notez également que cette politique inclut les autorisations qui vous permettent d'interagir avec les services `ses` et `sms-voice`, en plus du service `mobiletargeting`. Les autorisations `ses` et `sms-voice` vous permettent d'interagir avec l'API Amazon Pinpoint Email et l'API Amazon Pinpoint SMS et voix, respectivement. Les autorisations `mobiletargeting` vous permettent d'interagir avec l'API 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": "*"
           }
       ]
   }
   ```

------

   Choisissez **Suivant**.

1. Dans **Nom de la stratégie**, entrez un nom pour la stratégie, tel que**PostmanAccessPolicy**. Choisissez **Create Policy** (Créer une politique).

1. (Facultatif) Vous pouvez ajouter des balises à la politique en sélectionnant **Ajouter une balise**.

1. Choisissez **Suivant : Vérification**.

## Créer un utilisateur IAM
<a name="tutorials-using-postman-iam-user-create-user"></a>

**Avertissement**  
Les utilisateurs IAM disposent d’informations d’identification à long terme, ce qui présente un risque de sécurité. Pour atténuer ce risque, nous vous recommandons de ne fournir à ces utilisateurs que les autorisations dont ils ont besoin pour effectuer la tâche et de supprimer ces autorisations lorsqu’elles ne sont plus nécessaires.

Une fois que vous avez créé la politique, vous pouvez créer un utilisateur et lui attacher la politique. Lorsque vous créez l'utilisateur, IAM fournit un ensemble d'informations d'identification pour autoriser Postman à exécuter des opérations d'API Amazon Pinpoint.

**Pour créer l'utilisateur**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Sur la console IAM, dans le volet de navigation, choisissez **Users**, puis **Create users**.

1. Sous **Informations utilisateur**, pour **Nom utilisateur**, saisissez un nom qui identifie l'utilisateur, par exemple **PostmanUser**. Ensuite, sélectionnez **Suivant**.

1. Sous **Définir les autorisations**, pour les **Options d'autorisations**, choisissez **Attacher directement les politiques**. 

1. Sous **Politiques d'autorisations**, choisissez la stratégie (**PostmanAccessPolicy**) que vous avez créée dans [Créer une stratégie IAM](#tutorials-using-postman-iam-user-create-policy). Ensuite, sélectionnez **Suivant**.

1. Sur la page **Examiner et créer**, ajoutez, si vous le souhaitez, des balises qui vous aident à identifier l'utilisateur. Pour plus d'informations sur l'utilisation des balises, consultez la rubrique [Balisage des ressources IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) dans le *Guide de l'utilisateur IAM*. 

1. Lorsque vous êtes prêt à créer l'utilisateur, choisissez **Create user (Créer un utilisateur)**.

## Création de clés d'accès
<a name="tutorials-using-postman-iam-user-create-key"></a>

**Avertissement**  
Dans ce scénario, l’utilisateur IAM doit disposer d’un accès programmatique et d’informations d’identification à long terme, ce qui peut présenter un risque de sécurité. Pour atténuer ce risque, nous vous recommandons de ne fournir à ces utilisateurs que les autorisations dont ils ont besoin pour effectuer la tâche et de supprimer ces autorisations lorsqu’elles ne sont plus nécessaires. Les clés d’accès peuvent être mises à jour si nécessaire. Pour plus d’informations, consultez [Mettre à jour les clés d’accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html) dans le *Guide de l’utilisateur IAM*.

 IAM fournit un ensemble d'informations d'identification que vous pouvez utiliser pour autoriser Postman à exécuter des opérations d'API Amazon Pinpoint.

**Pour créer l'utilisateur**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation de la console IAM, sélectionnez **Utilisateurs**. Sélectionnez l'utilisateur (**PostmanUser**) créé dans [Créer un utilisateur IAM](#tutorials-using-postman-iam-user-create-user), puis sélectionnez l'onglet **Informations d'identification de sécurité**.

1. Dans la section **Clés d’accès**, choisissez **Créer une clé d’accès**.

1. Sur la page **Meilleures pratiques et alternatives relatives aux clés d'accès**, sélectionnez **Application exécutée en dehors AWS**. 

   Ensuite, sélectionnez **Suivant**.

1. (Facultatif) Vous pouvez ajouter une balise de description à la politique.

1. Choisissez **Create access key (Créer une clé d’accès)**.

1. Sur la page **Récupérer les clés d'accès**, copiez les informations d'identification qui sont affichées dans les colonnes **Clé d'accès** et **Clé d'accès secrète**.
**Note**  
Vous devez fournir l'ID de clé d'accès et la clé d'accès secrète ultérieurement dans ce tutoriel. C'est la seule fois que vous pourrez afficher la clé d'accès secrète. Nous vous recommandons de la copier et de l'enregistrer dans un emplacement sûr.

1. Après avoir enregistré les deux clés, choisissez **Terminé**.

**Suivant** : [Configuration de Postman](tutorials-using-postman-configuration.md)

# Configurer Postman pour une utilisation avec Amazon Pinpoint
<a name="tutorials-using-postman-configuration"></a>

Maintenant que vous avez créé un utilisateur en mesure d'accéder à l'API Amazon Pinpoint, vous pouvez configurer Postman. Dans cette section, vous allez créer un ou plusieurs environnements dans Postman. Ensuite, vous importez une collection qui contient un modèle de demande pour chacune des opérations de l'API Amazon Pinpoint.

## Création d'un espace de travail Postman
<a name="tutorials-using-postman-configuration-create-workspace"></a>

Dans Postman, un *espace de travail* est un conteneur organisationnel pour les projets et les environnements. Dans cette section, vous créez au moins un espace de travail à utiliser avec Amazon Pinpoint.

**Création d’un espace de travail**

Dans Postman, choisissez le plus d'actions, choisissez **Fichier**, puis **Nouveau**.

1. Dans la fenêtre **Créer nouveau**, choisissez **Espace de travail**.

1. Entrez un nom, un résumé et définissez la visibilité sur Personnel. Choisissez ensuite **Créer un espace de travail**.

## Créez des environnements Postman
<a name="tutorials-using-postman-configuration-create-environments"></a>

Dans Postman, un *environnement* est un ensemble de variables qui sont stockées en tant que paires clé-valeur. Vous pouvez utiliser des environnements pour modifier la configuration des demandes que vous effectuez via Postman, sans avoir à modifier les demandes d'API elles-mêmes.

Dans cette section, vous allez créer au moins un environnement à utiliser avec Amazon Pinpoint. Chaque environnement que vous créez contient un ensemble de variables qui sont spécifiques à votre compte dans une seule Région AWS. Si vous utilisez les procédures de cette section pour créer plusieurs environnements, vous pouvez passer d'une région à l'autre en choisissant un autre environnement dans le menu **Environnement** de Postman.

**Pour créer un environnement**

1. Dans Postman, choisissez le menu plus d'actions, choisissez **Fichier**, puis **Nouveau**.

1. Dans la fenêtre **Create New (Créer)**, choisissez **Environment (Environnement)**.

1. Dans la fenêtre **MANAGE ENVIRONMENTS (GÉRER LES ENVIRONNEMENTS)**, pour **Environment Name (Nom de l'environnement)**, saisissez **Amazon Pinpoint - *Region Name***. Remplacez *Region Name* par l'une des valeurs suivantes :
   + USA Est (Virginie du Nord)
   + USA Ouest (Oregon)
   + Asie-Pacifique (Mumbai)
   + Asie-Pacifique (Sydney)
   + Europe (Francfort)
   + Europe (Irlande)
**Note**  
Au minimum, vous ne devez créer qu'un seul environnement pour un seul Région AWS, qui Région AWS doit contenir un seul projet. Si vous n'avez pas créé de projet dans l'une des listes précédentes Régions AWS, consultez la section [Création d'un projet Amazon Pinpoint avec assistance par e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) dans le guide de l'utilisateur *Amazon Pinpoint*.

1. Créez six nouvelles variables: `endpoint`, `region`, `serviceName`, `accountId`, `accessKey` et `secretAccessKey`. Utilisez le tableau suivant pour déterminer quelle valeur saisir dans les colonnes **Valeur initiale** et **Valeur actuelle** pour chaque variable.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/tutorials-using-postman-configuration.html)

   Une fois que vous avez créé ces variables, la fenêtre **MANAGE ENVIRONMENTS (GÉRER LES ENVIRONNEMENT)** ressemble à l'exemple présenté dans l'image suivante.  
![\[\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Postman_Tutorial_2.1_4.png)

   Lorsque vous avez terminé, choisissez **Enregistrer**.
**Important**  
Les clés d'accès illustrées dans l'image précédente sont fictives. Ne partagez pas vos clés d'accès IAM avec d'autres personnes.  
Postman inclut des fonctionnalités qui vous permettent de partager et d'exporter des environnements. Si vous utilisez ces fonctionnalités, veillez à ne pas partager votre ID de clé d'accès et votre clé d'accès secrète avec une personne qui ne devrait pas avoir accès à ces informations d'identification.  
Pour plus d’informations, consultez [Bonnes pratiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

1. (Facultatif) Répétez les étapes 1 à 4 pour chaque environnement supplémentaire que vous souhaitez créer.
**Astuce**  
Dans Postman, vous pouvez créer autant d'environnements que vous le souhaitez. Vous pouvez utiliser les environnements des manières suivantes :  
Créer un environnement distinct pour chaque région dans laquelle vous devez tester l'API Amazon Pinpoint.
Créer des environnements qui sont associés à d'autres Comptes AWS.
Créer des environnements qui utilisent les informations d'identification associées à un autre utilisateur.

1. Lorsque vous avez fini de créer des environnements, passez à la section suivante.

## Créez une collection Amazon Pinpoint dans Postman
<a name="tutorials-using-postman-configuration-create-pinpoint-collection"></a>

Dans Postman, une *collection* est un groupe de demandes d'API. Les demandes d'une collection ont généralement un objectif commun qui les unit. Dans cette section, vous créez une nouvelle collection qui contient un modèle de demande pour chaque opération dans l'API Amazon Pinpoint.

**Pour créer la collection Amazon Pinpoint**

1. Dans Postman, choisissez le menu plus d'actions, choisissez **Fichier**, puis **Importer**.

1. Dans la fenêtre **d'importation**, choisissez **Importer depuis un lien**, puis entrez l'URL suivante : [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. 

   Choisissez **Importer**. Postman importe la collection Amazon Pinpoint, qui contient 120 exemples de demande.

## Test de la configuration de Postman
<a name="tutorials-using-postman-configuration-test-operation"></a>

Une fois que vous avez importé la collection Amazon Pinpoint, nous recommandons d'effectuer un test rapide pour vérifier que tous les composants sont correctement configurés. Vous pouvez tester votre configuration en soumettant une demande `GetApps`. Cette demande renvoie une liste de tous les projets qui existent dans votre compte Amazon Pinpoint dans la région Région AWS actuelle. Cette demande ne nécessite aucune configuration supplémentaire. C'est donc un bon moyen de tester votre configuration.

**Pour tester la configuration de la collection Amazon Pinpoint**

1. Dans le volet de navigation de gauche, sélectionnez **Collections**, développez la collection **Amazon Pinpoint**, puis développez le dossier **Apps**.

1. Dans la liste des demandes, sélectionnez **GetApps**.

1. Utilisez le sélecteur d'**environnement** pour choisir l'environnement que vous avez créé dans les environnements [Create Postman](#tutorials-using-postman-configuration-create-environments).

1. Sélectionnez **Send (Envoyer)**. Si la demande est envoyée avec succès, le volet de réponse indique le statut `200 OK`. Une réponse semblable à l'exemple présenté dans l'image ci-dessous s'affiche.  
![\[\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Postman_Tutorial_2.3_3.png)
**Note**  
Si aucun projet n'a été créé dans le Région AWS , Amazon Pinpoint revient. `{ "Item": [] }`

   Cette réponse montre une liste de tous les projets Amazon Pinpoint qui existent dans votre compte dans la région que vous avez sélectionnée à l'étape 3.

### Résolution des problèmes
<a name="tutorials-using-postman-configuration-test-operation-troubleshooting"></a>

Lorsque vous soumettez votre demande, vous pouvez voir un message d'erreur. La liste suivante contient plusieurs erreurs courantes que vous pouvez rencontrer et les étapes que vous pouvez effectuer pour les résoudre.


| Message d’erreur | Problème | Résolution | 
| --- | --- | --- | 
|  Could not get any response Une erreur s'est produite lors de la connexion à https://%7B%7Bendpoint%7D%7D/v1/apps.  |  Il n'y a pas de valeur actuelle pour la `{{endpoint}}` variable qui est définie lorsque vous choisissez un environnement.  | Utilisez le sélecteur d'environnements pour choisir un environnement. | 
|  The security token included in the request is invalid.  |  Postman n'a pas été en mesure d'identifier la valeur actuelle de votre ID de clé d'accès ou de clé d'accès secrète.  |  Choisissez l'icône d'engrenage située près du sélecteur d'environnements, puis sélectionnez l'environnement actuel. Vérifiez que les valeurs `accessKey` et `secretAccessKey` s'affichent dans les colonnes **VALEUR INITIALE** et **VALEUR ACTUELLE** et que vous avez saisi les informations d'identification correctement.  | 
|  « Message » : « L'utilisateur : arn:aws:iam : :123456789012:user/ n'PinpointPostmanUserest pas autorisé à effectuer : mobiletargeting : on resource : arn:aws:mobiletargeting:us-west- 2:123456789012 :\$1 » GetApps   |  La politique IAM associée à votre utilisateur n'inclut pas les autorisations appropriées.  |  Vérifiez que votre utilisateur dispose des autorisations décrites dans [Créer une politique IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy) et que vous avez fourni les informations d'identification correctes lorsque vous avez créé l'environnement dans l'espace de travail [Create Postman](#tutorials-using-postman-configuration-create-environments).  | 

**Suivant** : [Envoi de demandes supplémentaires](tutorials-using-postman-sample-requests.md)

# Envoyer des demandes à l'API Amazon Pinpoint
<a name="tutorials-using-postman-sample-requests"></a>

Lorsque vous avez terminé la configuration et le test de Postman, vous pouvez commencer à envoyer des demandes supplémentaires à l'API Amazon Pinpoint. Cette section présente les informations que vous devez connaître avant de commencer à envoyer des demandes. Elle inclut également deux exemples de demandes qui décrivent comment utiliser la collection Amazon Pinpoint.

**Important**  
Lorsque vous effectuez les procédures de cette section, vous soumettez des demandes à l'API Amazon Pinpoint. Ces demandes permettent de créer de nouvelles ressources dans votre compte Amazon Pinpoint, de modifier des ressources existantes, d'envoyer des messages, de modifier la configuration de vos projets Amazon Pinpoint et d'utiliser d'autres fonctionnalités d'Amazon Pinpoint. Soyez prudent lorsque vous exécutez ces demandes.

## Exemples de la collection Amazon Pinpoint Postman
<a name="tutorials-using-postman-sample-requests-about"></a>

Vous devez configurer la plupart des opérations dans la collection Postman d'Amazon Pinpoint avant de pouvoir les utiliser. Pour les opérations `GET` et `DELETE`, vous devez généralement modifier uniquement les variables qui sont définies dans l'onglet **Pre-request Script (Script de pré-demande)**.

**Note**  
Lorsque vous utilisez la politique IAM présentée dans [Créer une stratégie IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy), vous ne pouvez exécuter aucune des `DELETE` demandes incluses dans cette collection.

Par exemple, l'opération `GetCampaign` nécessite que vous spécifiez un `projectId` et un `campaignId`. Dans l'onglet **Pre-request Script (Script de pré-demande)**, ces deux variables sont présentes et sont renseignées avec des exemples de valeurs. Supprimez les exemples de valeurs et remplacez-les par les valeurs applicables pour votre projet et votre campagne Amazon Pinpoint.

Parmi ces variables, la plus couramment utilisée est la variable `projectId`. Sa valeur doit être l'identifiant unique du projet concerné par votre demande. Pour obtenir la liste de ces identifiants pour vos projets, vous pouvez vous référer à la réponse à la demande `GetApps` que vous avez envoyée à l'étape précédente de ce tutoriel. Dans cette réponse, le champ `Id` fournit l'identifiant unique d'un projet. Pour en savoir plus sur l'opération `GetApps` et la signification de chaque champ de la réponse, consultez [Applications](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps.html) dans la *Référence de l'API Amazon Pinpoint*.

**Note**  
Dans Amazon Pinpoint, un « projet » est identique à une « application » ou à une « application ».

Pour les opérations `POST` et `PUT`, vous devez également modifier le corps de la demande afin d'inclure les valeurs que vous souhaitez envoyer à l'API. Par exemple, lorsque vous soumettez une demande `CreateApp`, qui est une demande `POST`, vous devez spécifier un nom pour le projet que vous créez. Vous pouvez modifier la demande sur l'onglet **Body (Corps)**. Dans cet exemple, remplacez la valeur située à côté de `"Name"` par le nom du projet. Si vous souhaitez ajouter des balises au projet, vous pouvez les spécifier dans l'objet `tags`. Si vous ne souhaitez pas ajouter de balises, vous pouvez supprimer l'intégralité de l'objet `tags`.

**Note**  
L'opération `UntagResource` nécessite également que vous spécifiez les paramètres d'URL. Vous pouvez spécifier ces paramètres dans l'onglet **Params (Paramètres)**. Remplacez les valeurs de la colonne **VALUE (VALEUR)** par les balises que vous souhaitez supprimer pour la ressource spécifiée.

## Exemple de demande : créer un projet à l'aide de l'`CreateApp`opération
<a name="tutorials-using-postman-sample-requests-createapp"></a>

Avant de créer des segments et des campagnes dans Amazon Pinpoint, vous devez d'abord créer un projet. Dans Amazon Pinpoint, un *projet* se compose de segments, campagnes, configurations et données unis par un objectif commun. Par exemple, vous pouvez utiliser un projet pour contenir l’ensemble du contenu qui est lié à une application particulière ou à une initiative marketing ou marque spécifique. Lorsque vous ajoutez les informations client à Amazon Pinpoint, ces informations sont associées à un projet.

**Pour créer un projet en envoyant une demande d' CreateApp API**

1. Dans le menu **Environnements**, choisissez Région AWS celui dans lequel vous souhaitez créer le projet.  
![\[\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Postman_Tutorial_Environments.png)

    Dans cet exemple, Postman a été configuré de telle sorte que le menu **Environments (Environnements)** affiche les quatre options suivantes :
   + USA Est (Virginie du Nord)
   + USA Ouest (Oregon)
   + Europe (Francfort)
   + Europe (Irlande)

1. Dans le dossier **Apps**, choisissez l'**CreateApp**opération>.  
![\[\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Postman_Tutorial_3.2_2.png)

   Le dossier **Apps** de la collection Amazon Pinpoint Postman est agrandi et affiche les demandes suivantes :
   + `GetApp`
   + `GetApps`
   + `CreateApp`
   + `DeleteApp`

1. Dans l'onglet **Body (Corps)**, en regard de `"Name"`, remplacez la valeur d'espace réservé (`"string"`) par un nom pour la campagne, tel que **"MySampleProject"**.

1. Supprimez la virgule après le nom de la campagne, puis supprimez l'intégralité de l'objet `tags` sur les lignes 3 à 5. Lorsque vous avez terminé, votre demande devrait ressembler à l'exemple qui est illustré dans l'extrait de code suivant.

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

   Postman est configuré pour envoyer la demande en tant que charge utile JSON brute.

1. Sélectionnez **Send (Envoyer)**. Si la campagne est créée avec succès, le volet de réponse indique le statut `201 Created`.

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

## Exemple : envoyer un e-mail en utilisant l'`SendMessages`opération
<a name="tutorials-using-postman-sample-requests-sendmessages"></a>

Il est très courant d'utiliser l'API Amazon Pinpoint `SendMessages` pour envoyer des messages transactionnels. Un avantage de l'envoi de messages à l'aide de l'API `SendMessages`, par opposition à la création de campagnes, est que vous pouvez envoyer des messages à n'importe quelle adresse (par exemple, une adresse e-mail, un numéro de téléphone ou un jeton d'appareil). L'adresse à laquelle vous envoyez des messages ne doit pas déjà exister dans votre compte Amazon Pinpoint. Comparons cette méthode à l'envoi de messages en créant des campagnes. Avant d'envoyer une campagne dans Amazon Pinpoint, vous devez ajouter des points de terminaison à votre compte Amazon Pinpoint, créer des segments, créer la campagne et la mener à bien.

L'exemple de cette section vous montre comment envoyer un e-mail transactionnel directement à une adresse e-mail spécifique. Vous pouvez modifier cette demande pour envoyer des messages via d'autres canaux, comme les SMS, push mobile ou la messagerie vocale.

**Pour envoyer un message électronique en soumettant une SendMessages demande**

1. Vérifiez que le canal de messagerie est activé pour le projet et que l'adresse e-mail ou le domaine que vous souhaitez utiliser pour envoyer et recevoir le message est configuré. Pour plus d'informations, consultez les sections [Activation et désactivation du canal e-mail](pinpoint/latest/userguide/channels-email-setup.html) et [Vérification des identités e-mail](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html) dans le *Guide de l'utilisateur Amazon Pinpoint*.
**Note**  
Pour compléter la procédure de cette section, vous devez vérifier votre adresse e-mail

1. Dans le menu **Environnements**, choisissez Région AWS celui à partir duquel vous souhaitez envoyer le message.

   Dans cet exemple, Postman a été configuré de telle sorte que le menu **Environments (Environnements)** affiche les quatre options suivantes :
   + USA Est (Virginie du Nord)
   + USA Ouest (Oregon)
   + Europe (Francfort)
   + Europe (Irlande)

1. Dans le dossier **Messages**, choisissez l'**SendMessages**opération.  
![\[\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Postman_Tutorial_3.3_3.png)

1. Dans l'onglet **Pre-request Script (Script de pré-demande)**, remplacez la valeur de la variable `projectId` par l'ID d'un projet qui existe déjà dans la région que vous avez sélectionnée à l'étape 2 de cette section.

1. Dans l'onglet **Body (Corps)**, supprimez l'exemple de demande qui est affiché dans l'éditeur de demande. Collez le code suivant :

   ```
   {
       "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. Dans le code précédent, remplacez *sender@example.com* par votre adresse e-mail vérifiée. Remplacez *recipient@example.com* par l'adresse e-mail vérifiée à laquelle vous souhaitez envoyer le message.
**Note**  
Si votre compte se trouve encore dans l'environnement de test (sandbox) Amazon Pinpoint, vous ne pouvez envoyer des e-mails qu'aux adresses ou domaines vérifiés dans votre compte Amazon Pinpoint. Pour plus d'informations sur la suppression de votre compte de l'environnement de test (sandbox), veuillez consulter [Demande d'un accès en production pour les e-mails](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-production-access.html) dans le *Guide de l'utilisateur d'Amazon Pinpoint*.

1. Sélectionnez **Send (Envoyer)**. Si le message est envoyé avec succès, le volet de réponse indique le statut `200 OK`.

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

# Configurer un système d'enregistrement par SMS dans Amazon Pinpoint
<a name="tutorials-two-way-sms"></a>

Les SMS (messages texte) constituent un excellent moyen d'envoyer des messages urgents à vos clients à l'aide d'Amazon Pinpoint. De nombreuses personnes gardent leur téléphone à proximité en tout temps, et les SMS ont tendance à capter davantage l'attention des gens que les notifications push, les e-mails ou les appels téléphoniques.

Un moyen courant de capturer les numéros des téléphones mobiles des clients consiste à utiliser un formulaire web. Après avoir vérifié le numéro de téléphone du client et confirmé son abonnement, vous pouvez commencer à envoyer des messages SMS promotionnels, transactionnels et informationnels à ce client.

Ce didacticiel explique comment configurer un formulaire web pour capturer les informations de contact des clients. Le formulaire web envoie ces informations à Amazon Pinpoint. Ensuite, Amazon Pinpoint vérifie que le numéro de téléphone est valide et capture les autres métadonnées relatives au numéro de téléphone. Après cela, Amazon Pinpoint envoie au client un message lui demandant de confirmer son abonnement. Une fois que le client a confirmé son abonnement, Amazon Pinpoint l'inscrit pour recevoir vos messages.

Le diagramme d'architecture suivant illustre le flux de données dans cette solution.

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


## À propos de la double inscription
<a name="tutorials-two-way-sms-double-opt-in"></a>

Ce tutoriel montre comment configurer un système de double inscription dans Amazon Pinpoint qui utilise des SMS bidirectionnels.

Dans un système de double inscription par SMS, un client vous fournit son numéro de téléphone dans un formulaire web ou dans votre application. Lorsque vous recevez la demande du client, vous créez un point de terminaison dans Amazon Pinpoint. Le nouveau point de terminaison doit être désinscrit de vos communications. Ensuite, vous envoyez un message à ce numéro de téléphone. Dans votre message, vous demandez au destinataire de confirmer son abonnement en répondant à l'aide d'un mot ou d'une phrase spécifique (par exemple, « Oui » ou « Confirmer »). Si le client répond au message avec le mot ou la phrase que vous avez spécifié, vous remplacez le statut du point de terminaison par Inscrit. Sinon, si le client ne répond pas ou s'il répond avec un autre mot ou une autre phrase, vous pouvez laisser le point de terminaison avec un statut Désinscrit.

## À propos de cette solution
<a name="tutorials-two-way-sms-about"></a>

Cette section contient des informations sur la solution que vous concevez dans ce didacticiel.

**Public visé**  
Ce didacticiel est destiné aux développeurs et personnes chargées de l'implémentation du système. Vous n'avez pas besoin de connaître Amazon Pinpoint pour effectuer les étapes de ce tutoriel. Cependant, vous devez être à l'aise avec la gestion des politiques IAM, la création de fonctions Lambda dans Node.js, et le déploiement de contenu web.

**Fonctionnalités utilisées**  
Ce tutoriel inclut des exemples d'utilisation pour les fonctionnalités Amazon Pinpoint suivantes :
+ Envoi de messages SMS transactionnels
+ Obtention d'informations sur les numéros de téléphone à l'aide de la validation de numéro de téléphone
+ Réception de messages SMS entrant à l'aide de la messagerie SMS bidirectionnelle
+ Création de segments dynamiques
+ Création de campagnes
+ Interaction avec l'API Amazon Pinpoint en utilisant AWS Lambda

**Temps requis**  
Ce didacticiel dure environ une heure. Une fois que vous avez implémenté cette solution, il existe des étapes supplémentaires que vous pouvez effectuer pour affiner la solution en fonction de vos cas d'utilisation uniques.

**Restrictions régionales**  
Ce tutoriel nécessite de louer un code long à l'aide de la console Amazon Pinpoint. Vous pouvez utiliser la console Amazon Pinpoint pour louer des codes longs dédiés qui sont basés dans plusieurs pays. Cependant, seuls les codes longs basés au Canada peuvent être utilisés pour envoyer des messages SMS. (Vous pouvez utiliser des codes longs qui sont basés dans d'autres pays et régions pour envoyer des messages vocaux.)

Nous avons développé les exemples de code de ce didacticiel avec cette restriction à l'esprit. Par exemple, les exemples de code supposent que le numéro de téléphone du destinataire a toujours 10 chiffres et un code de 1. Si vous implémentez cette solution dans des pays ou des régions autres que les États-Unis ou le Canada, vous devez modifier les exemples de code de façon appropriée.

**Coûts d'utilisation des ressources**  
La création d'un AWS compte est gratuite. Cependant, si vous implémentez cette solution, vous risquez de payer les frais suivants :
+ **Frais de location des codes longs** : pour suivre ce tutoriel, vous devez louer un code long. Les codes longs basés au Canada coûtent 1,00 \$1 par mois.
+ **Utilisation de la validation de numéro de téléphone** : la solution de ce tutoriel utilise la fonctionnalité de validation de numéro de téléphone d'Amazon Pinpoint pour vérifier que chaque numéro que vous recevez est valide et correctement formaté, et pour obtenir des informations supplémentaires sur le numéro de téléphone. Vous payez 0,006 USD pour chaque demande de validation de numéro de téléphone.
+ **Coûts d'envoi des messages** : la solution de ce tutoriel envoie des messages SMS sortants. Vous payez pour chaque message que vous envoyez via Amazon Pinpoint. Le prix que vous payez pour chaque message dépend du pays ou de la région du destinataire. Si vous envoyez des messages à des destinataires situés aux États-Unis (à l'exception des territoires des États-Unis), vous payez 0,00645 USD par message. Si vous envoyez des messages à des destinataires situés au Canada, vous payez une somme de 0,00109 \$1 à 0,02 \$1, en fonction de l'emplacement de l'opérateur et du destinataire.
+ **Coûts de réception des messages** : cette solution reçoit et traite aussi les messages SMS entrants. Vous payez pour chaque message entrant envoyé à des numéros de téléphone qui sont associés à votre compte Amazon Pinpoint. Le prix que vous payez dépend de l'endroit où est basé le numéro de téléphone du destinataire. Si votre numéro de destinataire est basé aux États-Unis (à l'exception des territoires des États-Unis), vous payez 0,0075 USD par message entrant. Si votre numéro est basé au Canada, vous payez 0,00155 USD par message entrant.
+ **Utilisation de Lambda** : cette solution utilise deux fonctions Lambda qui interagissent avec l'API Amazon Pinpoint. Lorsque vous appelez une fonction Lambda, vous êtes facturé en fonction du nombre de demandes de vos fonctions, pour le temps qu'il faut à votre code pour s'exécuter, et pour la quantité de mémoire que vos fonctions utilisent. Les fonctions de ce tutoriel utilisent très peu de mémoire, et s'exécutent généralement pendant 1 à 3 secondes. Tout ou partie de votre utilisation de cette solution peut entrer dans le cadre du niveau d'utilisation gratuite de Lambda. Pour en savoir plus, consultez [Tarification Lambda](https://aws.amazon.com/lambda/pricing/).
+ **Utilisation d'API Gateway** : le formulaire web de cette solution appelle une API gérée par API Gateway. Pour chaque million d'appels vers API Gateway, vous payez entre 3,50 et 3,70 dollars, selon la région dans laquelle vous AWS utilisez Amazon Pinpoint. Pour plus d'informations, consultez [Tarification d'API Gateway](https://aws.amazon.com/api-gateway/pricing/).
+ **Coûts d'hébergement sur le web** : cette solution inclut un formulaire web que vous devez héberger sur votre site web. Le prix que vous payez pour l'hébergement de ce contenu dépend de votre fournisseur d'hébergement web.

**Note**  
Tous les tarifs affichés dans cette liste sont exprimés en dollars US (USD).

**Suivant** : [Prérequis](tutorials-two-way-sms-prereqs.md)

# Conditions préalables à la configuration des SMS dans Amazon Pinpoint
<a name="tutorials-two-way-sms-prereqs"></a>

Avant de commencer ce didacticiel, vous devez satisfaire les prérequis suivants :
+ Tu dois avoir un AWS compte. Pour créer un AWS compte, allez sur [https://console.aws.amazon.com/](https://console.aws.amazon.com/)et choisissez **Créer un nouveau AWS compte**.
+ Le compte que vous utilisez pour vous connecter AWS Management Console doit être en mesure d'effectuer les tâches suivantes :
  + Créer des politiques et des rôles IAM
  + Créer des projets Amazon Pinpoint
  + Créer des fonctions Lambda
  + Créer un nouveau APIs dans API Gateway
+ Vous devez disposer d'une méthode d'hébergement et de publication de pages Web. Bien que vous puissiez utiliser AWS des services pour héberger vos pages Web, vous n'y êtes pas obligé. 
**Astuce**  
Pour en savoir plus sur l'hébergement de pages Web à l'aide de AWS services, voir [Héberger une page Web statique](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

**Suivant** : [Configurer Amazon Pinpoint](tutorials-two-way-sms-part-1.md)

# Configurer les SMS dans Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1"></a>

Avant de pouvoir configurer des SMS, vous devez disposer d'un projet Amazon Pinpoint. Dans cette section, vous effectuez les opérations suivantes :
+ Créer un projet Amazon Pinpoint
+ Activer le canal SMS et louer un numéro de téléphone
+ Configurer la messagerie SMS bidirectionnelle

Avant de commencer, passez en revue les [prérequis](tutorials-two-way-sms-prereqs.md).

## Créer un projet Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1-create-project"></a>

Pour commencer, vous devez créer un projet Amazon Pinpoint. Dans Amazon Pinpoint, un *projet* se compose de segments, campagnes, configurations et données unis par un objectif commun. Par exemple, vous pouvez utiliser un projet pour contenir l’ensemble du contenu qui est lié à une application particulière ou à une initiative marketing ou marque spécifique. Lorsque vous ajoutez les informations client à Amazon Pinpoint, ces informations sont associées à un projet.

Les étapes impliquées dans la création d'un nouveau projet varient selon que vous avez déjà créé ou pas un projet dans Amazon Pinpoint.

### Création d'un projet (nouveaux utilisateurs d'Amazon Pinpoint)
<a name="tutorials-two-way-sms-part-1-create-project-opt-1"></a>

Ces étapes décrivent le processus de création d'un nouveau projet Amazon Pinpoint si vous n'avez jamais créé de projet dans la région actuelle AWS .

**Pour créer un projet**

1. Connectez-vous à la console Amazon Pinpoint AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Utilisez le sélecteur de région pour choisir la AWS région que vous souhaitez utiliser, comme illustré dans l'image suivante. En cas de doute, choisissez la région la plus proche de vous.  
![\[Le menu déroulant Région indiquant l'est des États-Unis (Virginie du Nord) sélectionné.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Region_Selector.png)

1. Sous **Get started (Mise en route)**, dans **Name (Nom)**, saisissez un nom pour la campagne (comme **SMSRegistration**), puis choisissez **Create project (Créer un projet)**.

1. Sur la page **Configure features (Configurer les fonctionnalités)**, choisissez **Skip this step (Ignorer cette étape)**.

1. Dans le panneau de navigation, choisissez **All projects (Tous les projets)**.

1. Sur la page **All projects (Tous les projets)**, située en regard du projet que vous venez de créer, copiez la valeur illustrée dans la colonne **Project ID (ID de projet)**.
**Astuce**  
Vous devez utiliser cet ID dans plusieurs endroits différents du didacticiel. Conservez l’ID de projet dans un endroit pratique, afin de pouvoir le copier ultérieurement.

### Création d'un projet (utilisateurs Amazon Pinpoint existants)
<a name="tutorials-two-way-sms-part-1-create-project-opt-2"></a>

Ces étapes décrivent le processus de création d'un nouveau projet Amazon Pinpoint si vous avez déjà créé des projets dans la région actuelle AWS .

**Pour créer un projet**

1. Connectez-vous à la console Amazon Pinpoint AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Utilisez le sélecteur de région pour choisir la AWS région que vous souhaitez utiliser, comme illustré dans l'image suivante. En cas de doute, choisissez la région la plus proche de vous.  
![\[La liste déroulante indiquant l'est des États-Unis (Virginie du Nord) sélectionnée.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/Region_Selector.png)

1. Sur la page **All projects (Tous les projets)**, sélectionnez **Create a project (Créer un projet )**.

1. Dans la fenêtre **Create a project (Créer un projet) **, dans **Project name (Nom de projet)**, attribuez un nom au projet (comme **SMSRegistration**). Choisissez **Créer**.

1. Sur la page **Configure features (Configurer les fonctionnalités)**, choisissez **Skip this step (Ignorer cette étape)**.

1. Dans le panneau de navigation, choisissez **All projects (Tous les projets)**.

1. Sur la page **All projects (Tous les projets)**, située en regard du projet que vous venez de créer, copiez la valeur illustrée dans la colonne **Project ID (ID de projet)**.
**Astuce**  
Vous devez utiliser cet ID dans plusieurs endroits différents du didacticiel. Conservez l’ID de projet dans un endroit pratique, afin de pouvoir le copier ultérieurement.

## Obtenir un numéro de téléphone dédié
<a name="tutorials-two-way-sms-part-1-set-up-channel"></a>

**Note**  
Amazon Pinpoint a mis à jour la documentation de son guide de l’utilisateur. Pour obtenir les dernières informations concernant la création, la configuration et la gestion de vos ressources SMS et vocales, consultez le nouveau [guide de l'utilisateur pour la messagerie SMS destinée aux utilisateurs AWS finaux](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html). 

Après que vous avez créé un projet, vous pouvez commencer à configurer les fonctionnalités au sein du projet. Dans cette section, vous activez le canal SMS, et obtenez un numéro de téléphone dédié à utiliser lors de l'envoi de messages SMS.

**Note**  
Cette section suppose que vous louez un numéro de téléphone 10DLC américain après l'enregistrement de la marque et de la campagne, un numéro gratuit américain ou un code long du Canada. Si vous suivez les procédures décrites dans cette section, mais choisissez un pays autre que les États-Unis ou le Canada, vous ne serez pas en mesure d’utiliser ce numéro pour envoyer des messages SMS. Pour en savoir plus sur la location de codes longs compatibles avec les SMS dans des pays autres que les États-Unis d'Amérique ou le Canada, [consultez la section Pays et régions pris en charge (canal SMS) dans AWS le Guide de l'utilisateur pour la messagerie SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) *destinée aux utilisateurs finaux*.

Pour activer le canal SMS à l’aide de la console Amazon Pinpoint, procédez comme suit :

**Activer le canal SMS**

1. Connectez-vous à la console Amazon Pinpoint AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Dans le panneau de navigation, sous **Paramètres**, choisissez **SMS et voix**.

1. En regard de **SMS settings (Paramètres SMS)**, choisissez **Edit (Modifier)**.

1. Sous **General settings (Paramètres généraux)**, choisissez **Enable the SMS channel for this project (Activer le canal SMS pour ce projet)**, puis choisissez **Save changes (Enregistrer les modifications)**.

Pour demander un numéro de téléphone à l'aide de la console SMS de messagerie utilisateur AWS final, procédez comme suit :

**Demander un numéro de téléphone (console)**

1. Ouvrez la console SMS de messagerie de l'utilisateur AWS final à l'adresse [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).
**Note**  
Assurez-vous de demander le même numéro de téléphone Région AWS que celui dans lequel vous avez créé votre projet Amazon Pinpoint.

1. Dans le volet de navigation, sous **Configurations**, choisissez **Numéros de téléphone**, puis **Auteur de la demande**.

1. Sur la page **Sélectionner un pays** pour le **Pays de destination du message**, choisissez les États-Unis ou le Canada. Choisissez **Suivant**.

1. Dans la section **Cas d’utilisation de messagerie**, saisissez les informations suivantes :
   + Sous **Capacités numériques**, choisissez **SMS**.
**Important**  
Les fonctionnalités pour SMS et Voix ne peuvent pas être modifiées une fois que le numéro de téléphone a été acheté.
   + Pour la **Messagerie bidirectionnelle**, choisissez **Oui**.

1. Choisissez **Suivant**.

1. Sous **Sélectionner le type d’expéditeur**, choisissez soit **Code long**, soit **10DLC**.

   Si vous choisissez 10DLC et que vous avez déjà une campagne enregistrée, vous pouvez choisir la campagne dans **Associer à la campagne enregistrée**.

1. Choisissez **Suivant**.

1. Dans **Vérifier et demander**, vous pouvez vérifier et modifier votre demande avant de l’envoyer. Cliquez sur **Demander**.

1. Une fenêtre **Inscription requise** peut apparaître en fonction du type de numéro de téléphone que vous avez demandé. Votre numéro de téléphone est associé à cette inscription et vous ne pouvez pas envoyer de messages tant que votre inscription n’a pas été approuvée. Pour plus d’informations sur les exigences d’inscription, consultez [Inscriptions](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

   1. Pour **Nom du formulaire d’inscription**, entrez un nom convivial.

   1. Choisissez **Démarrer l’inscription** pour terminer l’inscription du numéro de téléphone, ou choisissez **S’inscrire ultérieurement**.
**Important**  
Votre numéro de téléphone ne peut pas envoyer de messages tant que votre inscription n’a pas été approuvée.  
 La redevance mensuelle pour le numéro de téléphone vous est toujours facturée, quel que soit le statut de l’inscription. Pour plus d’informations sur les exigences d’inscription, consultez [Inscriptions](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

## Activer les SMS bidirectionnels
<a name="tutorials-two-way-sms-part-1-enable-two-way"></a>

Maintenant que vous avez un numéro de téléphone dédié, vous pouvez configurer les SMS bidirectionnels. L’activation de la communication bidirectionnelle par SMS permet à vos clients de répondre aux messages SMS que vous leur envoyez. Dans cette solution, vous utilisez les SMS bidirectionnels pour donner à vos clients un moyen de confirmer qu’il souhaite s’abonner à votre programme SMS.

Pour activer les SMS bidirectionnels à l'aide de la console SMS de messagerie utilisateur AWS final, procédez comme suit :

**Activer les SMS bidirectionnels**

1. Ouvrez la console SMS de messagerie de l'utilisateur AWS final à l'adresse [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Dans le volet de navigation, sous **Configurations**, choisissez **Numéros de téléphone**.

1. Sur la page **Numéros de téléphone**, choisissez un numéro de téléphone.

1. Dans l’onglet **SMS bidirectionnels**, choisissez le bouton **Modifier les paramètres**.

1. Sur la page **Modifier les paramètres**, choisissez **Activer les messages bidirectionnels**.

1. Pour **Type de destination**, choisissez **Amazon SNS**.
   + **Nouvelle rubrique Amazon SNS** — La messagerie SMS destinée aux utilisateurs AWS finaux crée une rubrique dans votre compte. Le sujet est automatiquement créé avec toutes les autorisations requises. Pour plus d’informations sur les rubriques Amazon SNS, consultez [Configuration d’Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-configuring.html) dans le *Guide du développeur Amazon SNS*. 
   + Pour la **destination du message entrant**, entrez un nom de rubrique, tel que **SMSRegistrationFormTopic**.

1. Pour le **Rôle de canal bidirectionnel**, choisissez **Utiliser les politiques de rubrique SNS**.

1. Sélectionnez **Enregistrer les modifications**.

Utilisez la console SMS de messagerie utilisateur AWS final pour ajouter des mots clés à votre numéro de téléphone que les clients vous envoient pour confirmer leurs abonnements (tels que **Yes** ou**Confirm**).

**Ajouter un mot-clé**

1. Ouvrez la console SMS de messagerie de l'utilisateur AWS final à l'adresse [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Dans le volet de navigation, sous **Configurations**, choisissez **Numéro de téléphone**.

1. Sur la page **Numéro de téléphone**, choisissez le numéro de téléphone auquel ajouter un mot-clé.

1. Dans l’onglet **Mots-clés**, cliquez sur le bouton **Ajouter un mot-clé**.

1. Dans le volet **Mot-clé personnalisé**, ajoutez ce qui suit :
   + **Mot-clé** : nouveau mot-clé à ajouter (tel que **Yes** ou **Confirm**).
   + **Message de réponse** : message à renvoyer au destinataire.
   + **Action de mot-clé** : action à exécuter lorsque le mot-clé est reçu. Choisissez **Réponse automatique**.

1. Choisissez **Ajouter un mot-clé**.

**Suivant** : [Création de politiques et de rôles IAM](tutorials-two-way-sms-part-2.md)

# Créez des politiques et des rôles IAM à utiliser avec les SMS dans Amazon Pinpoint
<a name="tutorials-two-way-sms-part-2"></a>

L'étape suivante de la mise en œuvre de la solution d'enregistrement par SMS dans Amazon Pinpoint consiste à configurer une politique et un rôle dans Gestion des identités et des accès AWS (IAM). Pour cette solution, vous devez créer une stratégie qui permet l'accès à certaines ressources qui sont associées à Amazon Pinpoint. Vous créez un rôle et lui attachez la stratégie. Plus loin dans ce didacticiel, vous allez créer une AWS Lambda fonction qui utilise ce rôle pour appeler certaines opérations dans l'API Amazon Pinpoint.

## Créer une politique IAM
<a name="tutorials-two-way-sms-part-2-create-policy"></a>

Cette section vous montre comment créer une politique IAM. Les utilisateurs et les rôles qui utilisent cette stratégie sont en mesure d'effectuer les actions suivantes :
+ Utiliser la fonction de validation du numéro de téléphone
+ Afficher, créer et mettre à jour les points de terminaison Amazon Pinpoint
+ Envoyer des messages aux points de terminaison Amazon Pinpoint

Dans ce tutoriel, vous souhaitez donner à Lambda la possibilité d'effectuer ces tâches. Toutefois, pour plus de sécurité, cette stratégie utilise le principe d'attribution du *moindre privilège*. En d'autres termes, elle accorde uniquement les autorisations requises pour exécuter la solution, et rien de plus. Cette stratégie est limitée de la manière suivante :
+ Vous pouvez uniquement l'utiliser pour appeler l'API Phone Number Validate dans une région spécifique.
+ Vous pouvez uniquement utiliser cette stratégie pour afficher, créer ou mettre à jour les points de terminaison associés à un projet Amazon Pinpoint spécifique.
+ Vous pouvez uniquement l'utiliser pour envoyer des messages aux points de terminaison qui sont associés à un projet Amazon Pinpoint spécifique.

**Pour créer la politique**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation, sélectionnez **Politiques**, puis **Créer une politique**.

1. Dans l'onglet **JSON**, copiez le code suivant.

------
#### [ 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"
           }
       ]
   }
   ```

------

   Dans l'exemple précédent, procédez comme suit :
   + Remplacez *region* par la AWS région dans laquelle vous utilisez Amazon Pinpoint, telle que `us-east-1` ou. `eu-central-1`
**Astuce**  
Pour obtenir la liste complète des AWS régions dans lesquelles Amazon Pinpoint est disponible, consultez la section [AWS Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) dans le. *Références générales AWS*
   + *accountId*Remplacez-le par l'identifiant unique de votre AWS compte.
   + *projectId*Remplacez-le par l'identifiant unique du projet que vous avez créé dans [Créer un projet Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) de ce didacticiel.
**Note**  
Les `logs` actions permettent à Lambda de consigner sa sortie dans CloudWatch Logs.

1. Choisissez **Suivant**.

1. Dans **Nom de la stratégie**, entrez un nom pour la stratégie, tel que**RegistrationFormPolicy**. Choisissez **Create Policy** (Créer une politique).

## Créer un rôle IAM
<a name="tutorials-two-way-sms-part-2-create-role"></a>

**Pour créer le rôle**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation de la console IAM, choisissez **Rôles**, puis **Créer un rôle**.

1. Sous **Type d'entité fiable**, choisissez **AWS service**, puis pour **Service ou cas d'utilisateur**, choisissez **Lambda** dans la liste déroulante.

1. Choisissez **Suivant**.

1. Sous **Politiques d'autorisation**, choisissez ou recherchez la politique que vous avez créée dans la section précédente, puis cliquez sur **Suivant**.

1. Sous **Détails du rôle**, **dans Nom du rôle**, entrez un nom pour le rôle, tel que**SMSRegistrationForm**. Choisissez **Créer un rôle**.

**Suivant** : [Création de fonctions Lambda](tutorials-two-way-sms-part-3.md)

# Créez des fonctions Lambda à utiliser avec la messagerie SMS Amazon Pinpoint
<a name="tutorials-two-way-sms-part-3"></a>

Cette section explique comment créer et configurer deux fonctions Lambda à utiliser avec la messagerie SMS Amazon Pinpoint. Plus tard, vous configurez API Gateway et Amazon Pinpoint pour appeler ces fonctions lorsque certains événements se produisent. Ces deux fonctions créent et mettent à jour les points de terminaison dans le projet Amazon Pinpoint que vous spécifiez. La première fonction utilise également la fonction de validation de numéro de téléphone.

## Créer la fonction qui valide les informations clients et crée les points de terminaison
<a name="tutorials-two-way-sms-part-3-create-register-function"></a>

La première fonction prend les informations de votre formulaire d'inscription, qu'elle reçoit d'Amazon API Gateway. Elle utilise ces informations pour obtenir des informations sur le numéro de téléphone du client en utilisant la fonction de [validation du numéro de téléphone](https://docs.aws.amazon.com/pinpoint/latest/developerguide/validate-phone-numbers.html) d'Amazon Pinpoint. La fonction utilise alors les données validées pour créer un point de terminaison dans le projet Amazon Pinpoint que vous spécifiez. Par défaut, le point de terminaison que la fonction crée est exclu de vos futures communications, mais cet état peut être modifié par la deuxième fonction. Enfin, cette fonction envoie au client un message leur demandant de vérifier qu'ils souhaitent recevoir des communications SMS de votre part.

**Pour créer la fonction Lambda**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Créer une fonction**.

1. Sous **Créer une fonction**, choisissez **Utiliser un plan**.

1. Dans le champ de recherche, entrez **hello**, puis appuyez sur Entrée. Dans la liste des résultats, choisissez la fonction Node.js `hello-world`, comme illustré dans l'image suivante.   
![\[La page Créer une fonction indiquant Utiliser un plan est sélectionnée.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.5.png)

1. Sous **Basic information** (Informations de base), procédez comme suit :
   + Dans **Name (Nom)**, saisissez un nom pour la fonction, tel que **RegistrationForm**.
   + Pour **Rôle**, sélectionnez **Choisir un rôle existant**.
   + Pour **Rôle existant**, choisissez le rôle de **SMSRegistrationformulaire** que vous avez créé dans [Créer un rôle IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Lorsque vous avez terminé, choisissez **Create function (Créer une fonction)**.

1. Pour **Code source**, supprimez l'exemple de fonction dans l'éditeur de code, puis collez le code suivant :

   ```
   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. Dans l'onglet **Configuration** des **variables d'environnement**, choisissez **Modifier** puis **Ajouter une variable d'environnement**, procédez comme suit :
   + Dans la première ligne, créez une variable avec la clé **originationNumber**. Ensuite, définissez la valeur sur le numéro de téléphone du code long dédié que vous avez reçu à l'[étape 1.2](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**Note**  
N'oubliez pas d'inclure le signe plus (\$1) et le code du pays pour le numéro de téléphone. N'incluez pas inclure d'autres caractères spéciaux, comme les tirets (-), les points (.) ou les parenthèses.
   + Dans la deuxième ligne, créez une variable avec la clé **projectId**. Ensuite, définissez la valeur sur l'ID unique du projet que vous avez créé à l'[étape 1.1](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + Dans la troisième ligne, créez une variable avec la clé **region**. Ensuite, définissez la valeur sur la région dans laquelle vous utilisez Amazon Pinpoint, comme **us-east-1** ou **us-west-2**.

   Lorsque vous avez terminé, la section **Environment Variables (Variables d' environnement)** doit ressembler à l'exemple illustré dans l'image suivante.  
![\[Les variables d'environnement pour OriginationNumber, ProjectiD et region.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.7.png)

1. Dans le haut de la page, choisissez **Enregistrer**.

### Tester la fonction
<a name="tutorials-two-way-sms-part-3-create-register-function-test"></a>

Après avoir créé la fonction, vous devez la tester pour vous assurer qu'elle soit correctement configurée. De plus, assurez-vous que le rôle IAM que vous avez créé possède les autorisations appropriées.

**Pour tester la fonction**

1. Choisissez l’onglet **Test**.

1. Choisissez **Créer un nouvel événement**, procédez comme suit :
   + Pour **Event name (Nom d'événement)**, saisissez un nom pour l'événement de test, tel que **MyPhoneNumber**.
   + Effacez l'exemple de code dans l'éditeur de code. Collez le code suivant :

     ```
     {
       "destinationNumber": "+12065550142",
       "firstName": "Carlos",
       "lastName": "Salazar",
       "source": "Registration form test"
     }
     ```
   + Dans l'exemple de code précédent, remplacez les valeurs des attributs `destinationNumber`, `firstName` et `lastName` par les valeurs que vous souhaitez utiliser pour les tests, telles que vos coordonnées personnelles. Lorsque vous testez cette fonction, elle envoie un message SMS au numéro de téléphone que vous spécifiez dans l'attribut `destinationNumber`. Assurez-vous que le numéro de téléphone que vous spécifiez est en mesure de recevoir des messages SMS.
   + Choisissez **Créer**.

1. Sélectionnez **Test**.

1. Sous **Execution result : succeeded (Résultat de l'exécution : succès)**, choisissez **Details (Détails)**. Dans la section **Log output (Sortie de journal)**, vérifiez le résultat de la fonction. Assurez-vous que la fonction s'est exécutée sans erreurs.

   Vérifiez le périphérique associé au `destinationNumber` que vous avez spécifié pour vous assurer qu'il a reçu le message de test.

1. Ouvrez la console Amazon Pinpoint à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Sur la page **Tous les projets**, choisissez le projet que vous avez créé dans [Créer un projet Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Dans le volet de navigation, sélectionnez **Segments**. Sur la page **Segments**, choisissez **Create a segment (Créer un segment)**.

1. Dans le groupe **Segment group 1 (1er groupe de segments)**, sous **Add filters to refine your segment (Ajouter des filtres pour affiner votre segment)**, choisissez **Filter by user (Filtrer par utilisateur)**.

1. Pour **Choisir un attribut utilisateur**, sélectionnez **FirstName**. Ensuite, pour **Choose values (Choisir des valeurs)**, choisissez le premier nom que vous avez spécifié dans l'événement de test.

   La section **Segment estimate (Estimation du segment)** doit montrer qu'il n'existe aucun point de terminaison éligible et un point de terminaison global, comme illustré dans l'image suivante. Ce résultat est prévu. Lorsque la fonction crée un nouveau point de terminaison, le point de terminaison est désinscrit. Les segments dans Amazon Pinpoint excluent automatiquement les points de terminaison désabonnés.  
![\[Le groupe de segments ne présentant aucun point final.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

## Créer la fonction qui inscrit les clients à vos communications
<a name="tutorials-two-way-sms-part-3-create-optin-function"></a>

La deuxième fonction est uniquement exécutée lorsqu'un client répond au message envoyé par la première fonction. Si la réponse du client inclut le mot clé que vous avez spécifié dans [Activer les SMS bidirectionnels](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel), la fonction met à jour l'enregistrement de son terminal pour l'autoriser à participer aux futures communications. Amazon Pinpoint répond également automatiquement avec le message que vous avez spécifié dans [Activer les SMS bidirectionnels](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).

Si le client ne répond pas ou répond autrement qu'avec le mot-clé défini, rien ne se passe. Le point de terminaison du client reste dans Amazon Pinpoint, mais il ne peut pas être ciblé par segments.

**Pour créer la fonction Lambda**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Créer une fonction**.

1. Sous **Create a function (Créer une fonction)**, choisissez **Blueprints (Plans)**.

1. Dans le champ de recherche, entrez **hello**, puis appuyez sur Entrée. Dans la liste des résultats, choisissez la fonction Node.js `hello-world`, comme illustré dans l'image suivante. Choisissez **Configurer**.

1. Sous **Basic information** (Informations de base), procédez comme suit :
   + Dans **Name (Nom)**, saisissez un nom pour la fonction, tel que **RegistrationForm\$1OptIn**.
   + Pour **Rôle**, sélectionnez **Choisir un rôle existant**.
   + Pour **Rôle existant**, choisissez le rôle de SMSRegistration formulaire que vous avez créé dans [Créer un rôle IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Lorsque vous avez terminé, choisissez **Create function (Créer une fonction)**.

1. Supprimez l'exemple de fonction dans l'éditeur de code, puis collez le code suivant :

   ```
   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. Sous **Environment variables (Variables d'environnement)**, effectuez les opérations suivantes :
   + Dans la première ligne, créez une variable avec la clé **projectId**. Ensuite, définissez la valeur sur l'ID unique du projet que vous avez créé dans [Create an Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) project.
   + Dans la deuxième ligne, créez une variable avec la clé **region**. Ensuite, définissez la valeur sur la région dans laquelle vous utilisez Amazon Pinpoint, comme **us-east-1** ou **us-west-2**.
   + Dans la troisième ligne, créez une variable avec la clé **confirmKeyword**. Ensuite, définissez la valeur sur le mot clé de confirmation que vous avez créé dans [Activer les SMS bidirectionnels](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**Note**  
Le mot-clé n'est pas sensible à la casse. Cette fonction convertit le message entrant en minuscules.

   Lorsque vous avez terminé, la section **Environment Variables (Variables d' environnement)** doit ressembler à l'exemple illustré dans l'image suivante.  
![\[Les variables d'environnement pour ProjectID, region et ConfirmKeyword.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step2.7.png)

1. Dans le haut de la page, choisissez **Enregistrer**.

### Tester la fonction
<a name="tutorials-two-way-sms-part-3-create-optin-function-test"></a>

Après avoir créé la fonction, vous devez la tester pour vous assurer qu'elle soit correctement configurée. De plus, assurez-vous que le rôle IAM que vous avez créé possède les autorisations appropriées.

**Pour tester la fonction**

1. Sélectionnez **Tester)**.

1. Sur la fenêtre **Configure test event (Configurer un événement de test)**, procédez de la façon suivante :

   1. Choisissez **Create new test event**.

   1. Pour **Event name (Nom d'événement)**, saisissez un nom pour l'événement de test, tel que **MyResponse**.

   1. Effacez l'exemple de code dans l'éditeur de code. Collez le code suivant :

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

      Dans l'exemple de code précédent, remplacez les valeurs de l'attribut `originationNumber` par le numéro de téléphone que vous avez utilisé lorsque vous avez testé la fonction Lambda précédente. Remplacez la valeur de `messageBody` par le mot clé SMS bidirectionnel que vous avez spécifié dans [Activer les SMS bidirectionnels](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). Le cas échéant, vous pouvez remplacer la valeur `Timestamp` par la date et l'heure actuelles.

   1. Choisissez **Créer**.

1. Choisissez **Test** à nouveau.

1. Sous **Execution result : succeeded (Résultat de l'exécution : succès)**, choisissez **Details (Détails)**. Dans la section **Log output (Sortie de journal)**, vérifiez le résultat de la fonction. Assurez-vous que la fonction s'est exécutée sans erreurs.

1. Ouvrez la console Amazon Pinpoint à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Sur la page **Tous les projets**, choisissez le projet que vous avez créé dans [Créer un projet Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Dans le volet de navigation, sélectionnez **Segments**. Sur la page **Segments**, choisissez **Create a segment (Créer un segment)**.

1. Dans le groupe **Segment group 1 (1er groupe de segments)**, sous **Add filters to refine your segment (Ajouter des filtres pour affiner votre segment)**, choisissez **Filter by user (Filtrer par utilisateur)**.

1. Pour **Choisir un attribut utilisateur**, sélectionnez **FirstName**. Ensuite, pour **Choose values (Choisir des valeurs)**, choisissez le premier nom que vous avez spécifié dans l'événement de test.

   La section **Segment estimate (Estimation du segment)** doit montrer qu'il existe un point de terminaison éligible et un point de terminaison global.

**Suivant** : [Configuration d'Amazon API Gateway](tutorials-two-way-sms-part-4.md)

# Configurer Amazon API Gateway pour la messagerie SMS dans Amazon Pinpoint
<a name="tutorials-two-way-sms-part-4"></a>

Dans cette section, vous allez créer une nouvelle API en utilisant Amazon API Gateway dans le cadre de l'enregistrement par SMS pour Amazon Pinpoint. Le formulaire d'enregistrement que vous déployez dans cette solution appelle cette API. API Gateway transmet ensuite les informations capturées sur le formulaire d'enregistrement à la fonction Lambda que vous avez créée dans Create [Lambda functions](tutorials-two-way-sms-part-3.md).

## Créer l'API
<a name="tutorials-two-way-sms-part-4-create-api"></a>

Tout d'abord, vous devez créer une nouvelle API dans API Gateway. Les procédures suivantes vous montrent comment créer une nouvelle API REST.

**Pour créer une nouvelle API**

1. Ouvrez la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Sélectionnez **Create API** (Créer une API). Effectuez les sélections suivantes :
   + Sous **Choose the protocol (Choisir le protocole)**, choisissez **REST**.
   + Sous **Create new API (Créer une nouvelle API)**, choisissez **New API (Nouvelle API)**.
   + Sous **Settings (Paramètres)**, pour **Name (Nom)**, entrez un nom, par exemple **RegistrationForm**. Pour **Description**, vous pouvez saisir un texte qui décrit l'objectif de l'API. Pour **Endpoint Type (Type de point de terminaison)**, choisissez **Regional (Régional)**. Ensuite, choisissez **Create API (Créer une API)**.

   Un exemple de ces paramètres est illustré dans l'image suivante.  
![\[Protocole défini sur REST, création d'une nouvelle API définie sur Nouvelle API, nom d'API défini sur RegistrationForm, et type de point de terminaison défini sur régional.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step2.png)

## Créer une ressource
<a name="tutorials-two-way-sms-part-4-create-resource"></a>

Maintenant que vous avez créé une API, vous pouvez commencer à y ajouter des ressources. Une fois que vous ajoutez une méthode POST à la ressource et demandez à API Gateway de transmettre les données que vous recevez de cette méthode à votre fonction Lambda.

1. Dans le menu **Actions**, choisissez **Create Resource (Créer une ressource)**. Dans le volet **New Child Resource (Nouvelle ressource enfant)**, pour **Resource Name (Nom de la ressource)**, entrez **register**, comme illustré dans l'image suivante. Choisissez **Create Resource**.  
![\[Le nouveau volet de ressources enfant dont le nom de ressource est défini pour être enregistré.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step3.png)

1. Dans le menu **Actions**, sélectionnez **Create method (Créer une méthode)**. Dans le menu qui s'affiche, choisissez **POST**, comme illustré dans l'image suivante. Cliquez ensuite sur le bouton en forme de **coche**.  
![\[Le volet de création d'une méthode avec une coche sélectionnée.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step4.png)

1. Dans le volet **/register - POST - Setup**, effectuez les sélections suivantes :
   + Pour **Integration type (Type d'intégration)**, choisissez **Lambda Function (Fonction Lambda)**.
   + Sélectionnez **Utiliser l'intégration de proxy Lambda**.
   + Pour **Région Lambda**, choisissez la région dans laquelle vous avez créé la fonction Lambda.
   + Pour **Lambda Function, choisissez la RegisterEndpoint fonction** que vous avez créée dans Create [Lambda functions](tutorials-two-way-sms-part-3.md).

   Un exemple de ces paramètres est illustré dans l'image suivante.  
![\[Le volet /register - POST - Setup avec la fonction Lambda sélectionnée.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step5.png)

   Choisissez **Enregistrer**. Dans la fenêtre qui s'affiche, choisissez **OK** pour donner à API Gateway l'autorisation d'exécuter votre fonction Lambda.

## Déploiement de l’API
<a name="tutorials-two-way-sms-part-4-deploy-api"></a>

L'API est maintenant prête à être utilisée. À ce stade, vous devez la déployer pour créer un point de terminaison accessible publiquement.

1. Dans le menu **Actions**, choisissez **Deploy API (Déployer l'API)**. Dans la fenêtre **Deploy API (Déployer l'API)**, effectuez les sélections suivantes :
   + Dans **Deployment stage (Étape de déploiement)**, sélectionnez **[New Stage] [Nouvelle étape]**.
   + Sous **Stage name (Nom de l'étape)**, entrez **v1**.
   + Choisissez **Deploy (Déployer)**.

   Un exemple de ces sélections est illustré dans l'image suivante.  
![\[Les fenêtres de l'API de déploiement dont le nom de stage est défini sur v1\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step6.png)

1. Dans le volet **v1 Stage Editor**, choisissez la ressource **/register**, puis choisissez la méthode **POST**. Copiez l'adresse qui est affichée à côté d'**Invoke URL (URL d'appel))**, comme illustré dans l'image suivante.  
![\[Le volet v1 Stage Editor affichant l'URL Invoke à copier\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step7.png)

1. Dans le panneau de navigation, choisissez **Resources** (Ressources). Dans la liste des ressources, choisissez la ressource **/registrer**. Enfin, dans le menu **Actions**, choisissez **Enable CORS (Activer CORS)**, comme illustré dans l'image suivante.  
![\[Le menu déroulant pour les actions indique que l'option Activer CORS est sélectionnée\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step8.png)

1. Dans le volet **Enable CORS (Activer CORS)**, choisissez **Enable CORS and replace existing CORS headers (Activer CORS et remplacer les en-têtes CORS existants)**.

**Suivant** : [Créer et déployer le formulaire web](tutorials-two-way-sms-part-5.md)

# Créez et déployez le formulaire Web pour utiliser la messagerie SMS pour Amazon Pinpoint
<a name="tutorials-two-way-sms-part-5"></a>

Tous les composants qui utilisent les AWS services de messagerie SMS via Amazon Pinpoint sont désormais en place. La dernière étape consiste à créer et à déployer le formulaire web qui capture des données du client.

## Création du gestionnaire JavaScript de formulaires
<a name="tutorials-two-way-sms-part-5-create-form-handler"></a>

Dans cette section, vous créez une JavaScript fonction qui analyse le contenu du formulaire Web que vous créez dans la section suivante. Après avoir analysé le contenu, cette fonction envoie les données à l'API que vous avez créée dans [Set up Amazon API Gateway](tutorials-two-way-sms-part-4.md).

**Pour créer le gestionnaire de formulaire**

1. Dans un éditeur de texte, créez un fichier.

1. Dans l'éditeur, collez le code suivant.

   ```
   $(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. Dans l'exemple précédent, remplacez-le *https://example.execute-api.us-east-1.amazonaws.com/v1/register* par l'URL Invoke que vous avez obtenue dans [Deploy the API](tutorials-two-way-sms-part-4.md#tutorials-two-way-sms-part-4-deploy-api).

1. Enregistrez le fichier.

## Création du fichier de formulaire
<a name="tutorials-two-way-sms-part-5-create-form"></a>

Dans cette section, vous allez créer un fichier HTML qui contient le formulaire que les clients utilisent pour s'inscrire à votre programme de SMS. Ce fichier utilise le gestionnaire de JavaScript formulaire que vous avez créé dans la section précédente pour transmettre les données du formulaire à votre fonction Lambda.

**Important**  
Lorsqu'un utilisateur envoie ce formulaire, il déclenche une fonction Lambda qui appelle plusieurs opérations d'API Amazon Pinpoint. Les utilisateurs malveillants pourraient lancer sur votre formulaire une attaque susceptible de causer un grand nombre de demandes. Si vous prévoyez d'utiliser cette solution pour une utilisation en production, vous devez la sécuriser en utilisant un système tel que [Google reCAPTCHA](https://www.google.com/recaptcha/about/).

**Pour créer le formulaire**

1. Dans un éditeur de texte, créez un fichier.

1. Dans l'éditeur, collez le code suivant.

   ```
   <!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. Dans l'exemple précédent, remplacez *SMSFormHandler.js* par le chemin complet du JavaScript fichier de gestionnaire de formulaire que vous avez créé dans la section précédente.

1. Enregistrez le fichier.

## Téléchargez les fichiers du formulaire
<a name="tutorials-two-way-sms-part-5-upload-form"></a>

Maintenant que vous avez créé le formulaire HTML et le gestionnaire de JavaScript formulaires, la dernière étape consiste à publier ces fichiers sur Internet. Cette section suppose que vous avez déjà un fournisseur d'hébergement web. Si vous n'avez pas encore de fournisseur d'hébergement, vous pouvez lancer un site Web en utilisant Amazon Route 53, Amazon Simple Storage Service (Amazon S3) et Amazon. CloudFront Pour de plus amples informations, veuillez consulter [Hébergement d'un site web statique](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

Si vous utilisez un autre fournisseur d'hébergement web, consultez la documentation de votre fournisseur pour plus d'informations sur la publication des pages web.

## Tester le formulaire
<a name="tutorials-two-way-sms-part-5-test-form"></a>

Une fois que vous avez publié le formulaire, vous devez envoyer certains événements de test pour vous assurer qu'il fonctionne comme prévu.

**Pour tester le formulaire d'inscription**

1. Dans un navigateur web, accédez à l'emplacement où vous avez téléchargé le formulaire d'inscription. Si vous avez utilisé l'exemple de code de [Create the JavaScript form handler](#tutorials-two-way-sms-part-5-create-form), vous voyez un formulaire qui ressemble à l'exemple de l'image suivante.  
![\[Le formulaire de demande du client créé à l'étape 5.1.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Form_Step5.3.1.png)

1. Saisissez vos coordonnées dans les champs **Prénom**, **Nom** et **Numéro de téléphone**.
**Note**  
Lorsque vous soumettez le formulaire, Amazon Pinpoint tente d'envoyer un message au numéro de téléphone que vous avez spécifié. En raison de cette fonctionnalité, vous devez utiliser un numéro de téléphone réel pour tester la solution du début à la fin.  
Si vous avez testé la fonction Lambda dans Create [Lambda functions](tutorials-two-way-sms-part-3.md), votre projet Amazon Pinpoint contient déjà au moins un point de terminaison. Lorsque vous testez ce formulaire, vous devez soit envoyer un numéro de téléphone différent sur le formulaire, soit supprimer le point de terminaison existant à l'aide de l'opération [DeleteEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#DeleteEndpoint)API.

1. Vérifiez l'appareil qui est associé au numéro de téléphone que vous avez spécifié pour vous assurer qu'il a reçu le message.

1. Ouvrez la console Amazon Pinpoint à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Sur la page **Tous les projets**, choisissez le projet que vous avez créé dans [Créer un projet Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. Dans le volet de navigation, sélectionnez **Segments**. Sur la page **Segments**, choisissez **Create a segment (Créer un segment)**.

1. Dans le groupe **Segment group 1 (1er groupe de segments)**, sous **Add filters to refine your segment (Ajouter des filtres pour affiner votre segment)**, choisissez **Filter by user (Filtrer par utilisateur)**.

1. Pour **Choisir un attribut utilisateur**, sélectionnez **FirstName**. Ensuite, pour **Choose values (Choisir des valeurs)**, choisissez le premier nom que vous avez spécifié lorsque vous avez envoyé le formulaire.

   La section **Segment estimate (Estimation du segment)** doit indiquer qu'il n'y a pas de points de terminaison éligibles, et un point de terminaison (sous Total endpoints (Total des points de terminaison)), comme illustré dans l'exemple suivant. Ce résultat est prévu. Lorsque la fonction Lambda crée un nouveau point de terminaison, le point de terminaison est désinscrit par défaut.  
![\[Un segment dont aucun point de terminaison n'est activé.\]](http://docs.aws.amazon.com/fr_fr/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

1. Sur l'appareil qui a reçu le message, répondez-y avec le mot clé SMS bidirectionnel que vous avez spécifié dans [Activer les SMS bidirectionnels](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). Amazon Pinpoint envoie immédiatement un message de réponse.

1. Dans la console Amazon Pinpoint, répétez les étapes 4 à 8. Cette fois, lorsque vous créez le segment, vous voyez un point de terminaison éligible, et un point de terminaison global. Ce résultat est prévu, car le point de terminaison est désormais inscrit.

# Étapes suivantes
<a name="tutorials-two-way-sms-next-steps"></a>

En suivant ce didacticiel, vous avez effectué les opérations suivantes :
+ Création d'un projet Amazon Pinpoint, configuration du canal SMS et obtention d'un code long dédié.
+ Création d'une politique IAM qui utilise le principal du moindre privilège pour accorder les droits d'accès et association de cette stratégie à un rôle.
+ Création de deux fonctions Lambda qui utilisent les SendMessages opérations PhoneNumberValidate UpdateEndpoint, et dans l'API Amazon Pinpoint.
+ Création d'une API REST avec API Gateway.
+ Création et déploiement d'un formulaire web qui collecte les informations de contact des clients.
+ Exécution de tests sur la solution pour vous assurer qu'elle fonctionne.

Cette section décrit quelques méthodes grâce auxquelles vous pouvez utiliser les informations clients collectées en utilisant cette solution. Elle inclut aussi des suggestions sur la façon dont vous pouvez personnaliser cette solution pour l'adapter à votre propre cas d'utilisation.

## Création de segments clients
<a name="tutorials-two-way-sms-next-steps-create-segments"></a>

Toutes les informations clients que vous collectez grâce à ce formulaire sont stockées en tant que points de terminaison. Cette solution crée des points de terminaison qui contiennent plusieurs attributs que vous pouvez utiliser à des fins de segmentation.

Par exemple, cette solution capture un attribut de point de terminaison appelé `Source`. Cet attribut contient le chemin d'accès complet à l'emplacement où le formulaire était hébergé. Lorsque vous créez un segment, vous pouvez filtrer le segment par point de terminaison, puis affiner le filtre en choisissant un attribut `Source`.

La création de segments en fonction de l'attribut `Source` attribut peut être utile de plusieurs façons. Tout d'abord, elle vous permet de créer rapidement un segment de clients qui se sont inscrits pour recevoir des messages SMS de votre part. De plus, l'outil de segmentation dans Amazon Pinpoint exclut automatiquement les points de terminaison qui ne se sont pas inscrits pour recevoir des messages.

L'attribut `Source` est également utile si vous décidez d'héberger le formulaire d'inscription dans plusieurs emplacements différents. Par exemple, vos documents marketing peuvent faire référence à un formulaire qui est hébergé dans un emplacement, tandis que les clients qui rencontrent le formulaire tout en parcourant votre site web peuvent afficher une version hébergée ailleurs. Dans ce cas, les attributs Source des clients qui remplissent le formulaire après avoir consulté vos documents marketing sont différents de ceux remplissent le formulaire après l'avoir trouvé sur votre site web. Vous pouvez utiliser cette différence pour créer des segments distincts, puis envoyer des communications adaptées à chacun de ces groupes.

## Envoi de messages de campagne personnalisés
<a name="tutorials-two-way-sms-next-steps-send-campaigns"></a>

Une fois que vous avez créé des segments, vous pouvez commencer à envoyer des campagnes à ces segments. Lorsque vous créez les messages de campagne, vous pouvez les personnaliser en spécifiant les attributs de point de terminaison que vous souhaitez inclure dans le message. Par exemple, le formulaire web utilisé dans cette solution nécessite que le client entre ses nom et prénom. Ces valeurs sont stockées dans l'enregistrement utilisateur associé au point de terminaison.

Par exemple, si vous utilisez l'opération d'API `GetEndpoint` pour récupérer les informations sur un point de terminaison qui a été créé à l'aide de cette solution, vous voyez une section qui ressemble à l'exemple suivant :

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

Si vous souhaitez inclure les valeurs de ces attributs dans votre message de campagne, vous pouvez utiliser la notation sous forme de point pour faire référence à l'attribut. Ensuite, entourez la totalité de la référence d'accolades doubles. Par exemple, si vous souhaitez inclure le prénom de chaque destinataire dans un message de campagne, incluez la chaîne suivante dans le message : `{{User.UserAttributes.FirstName}}`. Quand Amazon Pinpoint envoie le message, la chaîne est remplacée par la valeur de l'attribut `FirstName`.

## Utilisation d'un formulaire pour collecter des informations supplémentaires
<a name="tutorials-two-way-sms-next-steps-collect-additional"></a>

Vous pouvez modifier cette solution pour collecter des informations supplémentaires sur le formulaire d'inscription. Par exemple, vous pouvez demander au client de fournir son adresse, puis utiliser cette donnée pour remplir les champs `Location.City`, `Location.Country`, `Location.Region` et `Location.PostalCode` de la ressource `Endpoint`. La collecte des informations d'adresse sur le formulaire d'inscription peut se traduire par le fait que le point de terminaison contient des informations plus précises. Pour effectuer cette modification, vous devez ajouter les champs appropriés au formulaire web. Vous devez également modifier le JavaScript code du formulaire pour transmettre les nouvelles valeurs. Enfin, vous devez modifier la fonction Lambda qui crée le point de terminaison pour traiter les nouvelles informations entrantes.

Vous pouvez également modifier le formulaire de façon à ce qu'il recueille les informations de contact d'autres canaux. Par exemple, vous pouvez utiliser le formulaire pour collecter l'adresse e-mail du client en plus de son numéro de téléphone. Pour effectuer cette modification, vous devez modifier le code HTML et JavaScript le formulaire Web. Vous pouvez également modifier la fonction Lambda qui crée le point de terminaison de façon à créer deux points de terminaison distincts (un pour le point de terminaison de messagerie et un autre pour le point de terminaison SMS). Vous devez également modifier la fonction Lambda afin qu'elle génère une valeur unique pour l'attribut `User.UserId` et associe cette valeur aux deux points de terminaison.

## Enregistrement d'attributs supplémentaires à des fins d'audit
<a name="tutorials-two-way-sms-next-steps-auditing"></a>

Cette solution enregistre deux attributs précieux lors de la création et de la mise à jour des points de terminaison. Tout d'abord, lorsque la première fonction Lambda crée initialement le point de terminaison, il enregistre l'URL du formulaire lui-même dans l'attribut `Attributes.Source`. Si le client répond au message, la deuxième fonction Lambda crée un attribut `Attributes.OptInTimestamp`. Cet attribut contient la date et l'heure exactes auxquelles le client a accepté de recevoir des messages de votre part.

Ces deux champs peuvent être utiles si vous êtes invité par un opérateur mobile ou un organisme de réglementation à fournir la preuve du consentement d'un client. Vous pouvez récupérer ces informations à tout moment à l'aide de l'opération [GetEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#GetEndpoint)API.

Vous pouvez également modifier les fonctions Lambda pour enregistrer les données supplémentaires susceptibles d'être utiles à des fins d'audit, telles que l'adresse IP à partir de laquelle la demande d'inscription a été envoyée.