

Le SDK AWS mobile pour Unity est désormais inclus dans le AWS SDK pour .NET. Ce guide fait référence à la version archivée du SDK mobile pour Unity. Pour de plus amples informations, veuillez consulter [Qu'est-ce que le SDK AWS mobile pour Unity ?](what-is-unity-plugin.md).

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.

# Amazon Simple Notification Service
<a name="sns"></a>

Amazon Simple Notification Service (SNS) et le kit SDK Unity, vous permettent d'écrire des applications iOS et Android qui peuvent recevoir des notifications push mobile. Pour en savoir plus sur SNS, consultez la section [Amazon Simple Notification Service](https://aws.amazon.com/sns/).

Cette rubrique explique comment configurer le kit SDK AWS pour l'exemple d'application Unity SNSExample, .unity, afin de recevoir des notifications push mobiles via Amazon SNS.

Vous pouvez créer des applications iOS et Android à l'aide de l'exemple SNSExample .unity. Les étapes de configuration d'iOS et Android sont différentes, veuillez lire la section appropriée ci-dessous pour la plateforme que vous ciblez.

## Conditions préalables
<a name="prerequisites"></a>

Les conditions préalables suivantes sont requises pour utiliser cette solution.

### Définir les autorisations pour SNS
<a name="set-permissions-for-sns"></a>

Lorsque vous créez un pool d'identités Cognito, deux rôles IAM sont générés :
+ Cognito/\$1 <Identity-Pool-Name>Auth\$1 DefaultRole  : rôle IAM par défaut pour les utilisateurs authentifiés
+ Cognito/\$1 <Identity-Pool-Name>Unauth\$1 : rôle IAM par défaut pour les DefaultRole utilisateurs non authentifiés

Vous devez ajouter des autorisations d'accès au service Amazon SNS à ces rôles. Pour cela :

1. Accédez à la [console IAM](https://console.aws.amazon.com/iam/home) et sélectionnez le rôle IAM à configurer.

1. Cliquez sur **Attacher la politique**, sélectionnez la politique Amazon SNSFull Access et cliquez sur **Attacher la politique**.

**Note**  
L'utilisation SNSFull d'Amazon Access n'est pas recommandée dans un environnement de production. Nous l'utilisons ici pour vous permettre d'être rapidement opérationnel. Pour en savoir plus sur la définition d'autorisations pour un rôle IAM, consultez [Présentation des autorisations des rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html).

### Prérequis iOS
<a name="ios-prerequisites"></a>
+ Adhésion au programme Apple iOS pour les développeurs
+ Générer une identité de signature
+ Créer un profil de mise en service configuré pour les notifications push

Pour recevoir des notifications Push, vous devez exécuter votre application sur un appareil physique. Pour exécuter votre application sur un appareil, vous devez adhérer au [programme Apple iOS pour les développeurs](https://developer.apple.com/programs/ios/). Une fois que vous disposez d'un abonnement, vous pouvez utiliser Xcode pour générer une identité de signature. Pour en savoir plus, consultez la documentation [App Distribution Quick Start publiée par Apple](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839). Ensuite, vous aurez besoin d'un profil de mise en service configuré pour les notifications push. Pour de plus amples informations, veuillez consulter la documentation [Configuring Push Notifications](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1) publiée par Apple.

### Prérequis Android
<a name="android-prerequisites"></a>
+ Installer le kit SDK Android
+ Installer le JDK
+ android-support-v4.jar
+ google-play-services.jar

## Configuration de l'exemple d'application Unity pour iOS
<a name="configuring-the-unity-sample-app-for-ios"></a>

Ouvrez l'éditeur Unity et créez un projet. Importez le package AWS SDK for Unity **en sélectionnant Assets**/Import Package/Custom Package** et en sélectionnant aws-unity-sdk-sns** **-2.0.0.1.unitypackage**. Assurez-vous que tous les éléments de la boîte de dialogue **Importing Package** sont sélectionnés et cliquez sur **Import**.

### Configuration Unity
<a name="unity-configuration"></a>

Effectuez les étapes suivantes pour configurer le projet Unity :

1. Dans le volet **Projet**, accédez à **Assets**/**AWSSDK**/**examples** et ouvrez la SNSExample scène.

1. Dans le volet **Hiérarchie**, sélectionnez SNSExample.

1. Dans le volet **Inspector**, spécifiez votre ID de pool d'identités Cognito.

1. Comme vous pouvez le remarquer, le volet contient une zone de texte **iOS Platform Application ARN**. Vous générerez ces informations plus tard.

1. Sélectionnez **File**/**Build Settings**, dans la boîte de dialogue **Build Settings**, cliquez sur le bouton **Add Current** sous la zone de liste **Scenes in Build** pour ajouter la scène actuelle à la version.

1. Sous **Platform**, sélectionnez **iOS** et cliquez sur le bouton **Player Settings...** dans le **volet Inspector** de l'éditeur Unity, cliquez sur l'icône iPhone et faites défiler vers le bas jusqu'à la section **Identification** et spécifiez un **identifiant de groupe**.

### Configuration iOS
<a name="ios-configuration"></a>

Effectuez les étapes suivantes pour configurer l'exemple afin de définir des paramètres spécifiques à iOS :

1. Dans un navigateur web, accédez au site [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action), puis cliquez sur **Certificates, Identifiers & Profiles**.

1. Cliquez sur **Identifiers** sous **iOS Apps**, cliquez sur le bouton Plus situé dans l'angle supérieur droit de la page pour ajouter un nouvel identifiant iOS App ID, puis saisissez une description de l'ID d'application.

1. Faites défiler la page jusqu'à la section **Add ID Suffix**, puis choisissez **Explicit App ID** et saisissez votre identifiant de groupe.

1. Faites défiler jusqu'à la section **App Services** et sélectionnez **Push Notifications**.

1. Cliquez sur le bouton **Continue**.

1. Cliquez sur le bouton **Submit**.

1. Cliquez sur le bouton **Done**.

1. Sélectionnez l'ID d'application que vous venez de créer, puis cliquez sur le bouton **Edit**.

1. Faites défiler jusqu'à la section **Push Notifications**.

1. Cliquez sur le bouton **Create Certificate** sous **Development SSL Certificate**.

1. Suivez les instructions pour créer une demande de signature de certificat (CSR, Certificate Signing Request), chargez la demande et téléchargez un certificat SSL qui sera utilisé pour communiquer avec Apple Notification Service (APNS).

1. De retour dans la page web **Certificates, Identifiers & Profiles**, cliquez sur **All** sous **Provisioning Profiles**.

1. Cliquez sur le bouton Plus dans l'angle supérieur droit pour ajouter un nouveau profil de mise en service.

1. Sélectionnez **iOS App Development** et cliquez sur le bouton **Continue**.

1. Sélectionnez votre ID d'application et cliquez sur le bouton **Continue**.

1. Sélectionnez votre certificat de développeur et cliquez sur le bouton **Continue**.

1. Sélectionnez votre appareil et cliquez sur le bouton **Continue**.

1. Saisissez un nom de profil et cliquez sur le bouton **Generate**.

1. Téléchargez le fichier de mise en service et double-cliquez dessus pour installer le profil de mise en service.

Vous devrez peut-être actualiser les profils de mise en service dans Xcode après avoir ajouté un nouveau profil. Dans Xcode :

1. Sélectionnez l'élément de menu **Xcode**/**Preferences**.

1. Sélectionnez l'onglet **Accounts**, puis votre ID Apple et cliquez sur **View Details**.

1. Cliquez sur le bouton Refresh dans le coin inférieur gauche de la boîte de dialogue pour actualiser vos profils de mise en service et vous assurer que votre nouveau profil s'affiche.

### Configuration SNS
<a name="sns-configuration"></a>

1. Lancez l'application KeyChain d'accès, sélectionnez **Mes certificats** dans le coin inférieur gauche de l'écran, cliquez avec le bouton droit sur le certificat SSL que vous avez généré pour vous connecter à APNS et sélectionnez **Exporter**. Vous serez invité à spécifier un nom pour le fichier et un mot de passe pour protéger le certificat. Le certificat sera enregistré dans un fichier P12.

1. Dans un navigateur web, accédez à la [console SNS](https://console.aws.amazon.com/sns/v2/home) et cliquez sur **Applications** sur le côté gauche de l'écran.

1. Cliquez sur **Créer une application de plate-forme** pour créer une nouvelle application de plateforme SNS.

1. Saisissez le **nom de l'application**.

1. Sélectionnez **Apple Push Notification Service Sandbox (APNS\$1SANDBOX)** pour **Plate-forme de notifications push**.

1. Cliquez sur **Choisir un fichier** et sélectionnez le fichier P12 que vous avez créé lorsque vous avez exporté votre certificat SSL.

1. Entrez le mot de passe vous avez spécifié lorsque vous avez exporté le certificat SSL et cliquez sur **Charger à partir du fichier**.

1. Cliquez sur **Créer une application de plate-forme**.

1. Sélectionnez l'application de plateforme que vous venez de créer et copiez l'ARN de l'application.

1. Revenez à votre projet dans l'éditeur Unity, sélectionnez-le **SNSExample**dans le volet **Hiérarchie**, dans le volet **Inspector** et collez l'ARN de l'application de plate-forme dans la zone de texte intitulée **ARN de l'application de plate-forme iOS**.

1. Sélectionnez **File**/**Build Settings**, puis cliquez sur le bouton **Build** pour créer un projet Xcode.

### Utilisation de Xcode
<a name="using-xcode"></a>

1. Ouvrez le projet Xcode et sélectionnez le projet dans le navigateur de projet.

1. Vérifiez que l'identifiant de groupe est défini correctement

1. Vérifiez que votre compte de développeur Apple est spécifié dans l'**équipe** - cette action est obligatoire pour que votre profil de mise en service prenne effet.

1. Générez le projet et exécutez-le sur votre appareil.

1. Appuyez sur **Register for Notification**, puis sur **OK** pour autoriser les notifications, l'application affichera votre jeton d'appareil

Dans la [console SNS](https://console.aws.amazon.com/sns/v2/home), cliquez sur **Applications**, sélectionnez votre application de plateforme, cliquez sur **Créer un point de terminaison de plate-forme**, et saisissez le jeton d'appareil affiché sur l'application.

A ce stade, votre application, APNS et NSN sont entièrement configurés. Vous pouvez sélectionner votre application de plateforme, choisir votre point de terminaison, puis cliquer sur **Publier sur le point de terminaison** pour envoyer une notification push à votre appareil.

### Exemple Unity (iOS)
<a name="unity-sample-ios"></a>

L'exemple crée une AWSCredentials instance Cognito pour générer des informations d'identification temporaires à portée limitée qui permettent à l'application d'appeler les services AWS. Il crée également une instance de AmazonSimpleNotificationServiceClient pour communiquer avec SNS. L'application affiche deux boutons intitulés **Register for Notification** et **Unregister**.

Lorsque vous appuyez sur le bouton **Register for Notifications**, la méthode `RegisterDevice()` est appelée. `RegisterDevice()` appelle`UnityEngine.iOS.NotificationServices.RegisterForNotifications`, qui spécifie les types de notification (alerte, son ou badge) qui seront utilisés. Elle effectue aussi un appel asynchrone à APNS pour obtenir un jeton d'appareil. Parce qu'aucun rappel n'est défini, `CheckForDeviceToken` est appelée plusieurs fois (jusqu'à 10 fois) pour vérifier le jeton de l'appareil.

Lorsqu'un jeton est récupéré `AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync()` est appelée pour créer un point de terminaison pour l'application de plateforme SNS.

L'exemple est maintenant configuré pour recevoir des notifications push. Vous pouvez accéder à la [console SNS](https://console.aws.amazon.com/sns/v2/home), cliquer sur **Applications** sur le côté gauche de la page, sélectionner votre application de plateforme, choisir un point de terminaison et cliquer sur **Publier sur le point de terminaison**. Sélectionnez le point de terminaison à utiliser et cliquez sur **Publier sur le point de terminaison**. Pour publier un message, saisissez un message texte dans la zone de texte et cliquez sur **Publier le message**.

## Configuration de l'exemple d'application Unity pour Android
<a name="configuring-the-unity-sample-app-for-android"></a>

Ouvrez l'éditeur Unity et créez un projet. Importez le package AWS SDK for Unity **en sélectionnant Assets**/Import Package/Custom Package** et en sélectionnant aws-unity-sdk-sns** **-2.0.0.1.unitypackage**. Assurez-vous que tous les éléments de la boîte de dialogue **Importing Package** sont sélectionnés et cliquez sur **Import**.

### Configuration Unity
<a name="id3"></a>

Effectuez les étapes suivantes pour configurer le projet Unity :

1. Dans le volet **Projet**, accédez à **Assets**/**AWSSDK**/**examples** et ouvrez la SNSExample scène.

1. Dans le volet **Hiérarchie**, sélectionnez SNSExample.

1. Dans le volet **Inspector**, spécifiez votre ID de pool d'identités Cognito.

1. Comme vous pouvez le remarquer, le volet contient des zones de texte **Android Platform Application ARN** et **Google Console Project ID**. Vous générerez ces informations plus tard.

1. Sélectionnez **File**/**Build Settings**, dans la boîte de dialogue **Build Settings**, cliquez sur le bouton **Add Current** sous la zone de liste **Scenes in Build** pour ajouter la scène actuelle à la version.

1. Sous **Platform** sélectionnez **Android** et cliquez sur le bouton **Player Settings...** dans le **volet Inspector** de l'éditeur Unity, cliquez sur l'icône Android et faites défiler vers le bas jusqu'à la section **Identification** et spécifiez un **identifiant de groupe**.

1. Copiez les fichiers android-support-v 4.jar et google-play-services .jar dans le répertoire **Assets**/**Plugins**/**Android** du volet **Projet**.

Pour plus d'informations sur l'emplacement du android-support-v fichier 4.jar, consultez la section [Configuration de la bibliothèque de support Android](https://developer.android.com/tools/support-library/setup.html). Pour plus d'informations sur la recherche du google-play-services fichier .jar, consultez la section [Configuration de Google APIs pour Android](https://developers.google.com/android/guides/setup).

### Configuration Android
<a name="android-configuration"></a>

Tout d'abord, ajoutez un nouveau projet d'API Google :

1. Dans un navigateur web, accédez à la [console Google Developers](https://console.developers.google.com), cliquez sur **Google APIs for Android Setup**.

1. Dans la zone **New Project**, entrez un nom de projet, notez son numéro (vous en aurez besoin plus tard) et cliquez sur **Create**.

Ensuite, activez le service de messagerie de Google Cloud (GCM) pour le projet :

1. Dans la console Google Developers, votre nouveau projet doit être déjà sélectionné, sinon, sélectionnez-le dans le menu déroulant en haut de la page.

1. Sélectionnez **APIs & auth dans** la barre latérale sur le côté gauche de la page.

1. Dans la zone de recherche, tapez « Google Cloud Messaging pour Android » et cliquez sur le lien **Google Cloud Messaging pour Android** ci-dessous.

1. Cliquez sur **Enable API**.

Enfin, obtention d'une clé API :

1. Dans la console Google Developers, sélectionnez **APIs & auth** > **Identifiants**.

1. Sous **Public API access**, cliquez sur **Create new key**.

1. Dans la boîte de dialogue **Create new key**, cliquez sur **Server Key**.

1. Dans la boîte de dialogue qui s'affiche, cliquez sur **Create**, puis copiez la clé d'API affichée.

Vous utiliserez la clé API pour effectuer l'authentification par la suite.

### Configuration SNS
<a name="id4"></a>

1. Dans un navigateur web, accédez à la [console SNS](https://console.aws.amazon.com/sns/v2/home) et cliquez sur **Applications** sur le côté gauche de l'écran.

1. Cliquez sur **Créer une application de plate-forme** pour créer une nouvelle application de plateforme SNS.

1. Saisissez le **nom de l'application** 

1. Sélectionnez **Google Cloud Messaging (GCM)** comme **plateforme de notification push** 

1. Collez la clé de l'API dans la zone de texte **API key**.

1. Cliquez sur **Create platform application** 

1. Sélectionnez l'application de plateforme que vous venez de créer et copiez l'ARN de l'application.

1. Revenez à votre projet dans l'éditeur Unity, sélectionnez-le **SNSExample**dans le volet **Hierarchy**, dans le volet **Inspector** et collez l'ARN de l'application de plateforme dans la zone de texte intitulée **Android Platform Application ARN** et votre numéro de projet dans la zone de texte intitulée **ID de projet de la console Google**.

1. Connectez votre appareil Android à votre ordinateur, sélectionnez **File**/**Build Settings** et cliquez sur **Build and Run.** 

### Exemple Unity (Android)
<a name="unity-sample-android"></a>

L'exemple crée une AWSCredentials instance Cognito pour générer des informations d'identification temporaires à portée limitée qui permettent à l'application d'appeler les services AWS. Il crée également une instance de AmazonSimpleNotificationServiceClient pour communiquer avec SNS.

L'application affiche deux boutons intitulés **Register for Notification** et **Unregister**. Lorsque vous appuyez sur le bouton **Register for Notifications**, la méthode `RegisterDevice()` est appelée. `RegisterDevice()` appelle`GCM.Register`, qui inscrit l'application auprès de GCM. GCM est une classe définie dans l'exemple de code. Elle effectue un appel asynchrone pour inscrire l'application auprès de GCM.

Lorsque le rappel est appelé, `AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync` est appelée pour créer un point de terminaison de plateforme afin de recevoir des messages SNS.

L'exemple est maintenant configuré pour recevoir des notifications push. Vous pouvez accéder à la [console SNS](https://console.aws.amazon.com/sns/v2/home), cliquer sur **Applications** sur le côté gauche de la page, sélectionner votre application de plateforme, choisir un point de terminaison et cliquer sur **Publier sur le point de terminaison**. Sélectionnez le point de terminaison à utiliser et cliquez sur **Publier sur le point de terminaison**. Pour publier un message, saisissez un message texte dans la zone de texte et cliquez sur **Publier le message**.