> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentification PlayFab avec la connexion Google Play Games dans Unity

> Tutoriel pas à pas pour ajouter la connexion Google Play Games à un projet Unity avec le SDK PlayFab, couvrant la configuration de la Play Console et l'authentification des joueurs.

# Configuration de l'authentification PlayFab avec la connexion Google Play Games dans Unity

## Prérequis

* Un projet créé avec le moteur de jeu Unity.
* Un compte de développeur Google.
* Un compte de développeur PlayFab ayant accès à un titre de jeu dans PlayFab.
* Les [extensions d'éditeur Unity PlayFab et le SDK Unity](/fr/services/playfab/sdks/unity3d/quickstart).
* Le [SDK Google Play Games](https://github.com/playgameservices/play-games-plugin-for-unity).
* Une bonne connaissance des [principes de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices).

## Prise en main

Commençons par configurer quelques éléments de base dans Google Play. Il existe déjà de bons guides expliquant comment effectuer certaines de ces tâches ; nous n'allons donc pas réinventer la roue.

1. Créez une **application** : si vous n'avez pas encore créé d'application, vous devez le faire dans la [Google Play Developer Console](https://play.google.com/apps/publish).

2. Générez l'AAB de votre jeu et chargez-le pour les tests internes. Vous pouvez suivre [ce](https://support.google.com/googleplay/android-developer/answer/9859348?visit_id=638373214207471441-2235763004\&rd=1) guide pour publier votre application sur la piste **Internal testing**. Pendant le processus de signature, notez que vous devez utiliser votre propre keystore pour votre app bundle. Consultez [cette](https://docs.unity3d.com/Manual/android-keystore-create.html) documentation pour savoir comment créer un keystore.

3. Configurez Google Play Games services en suivant les instructions de cette page : [Setting Up Google Play Games Services](https://developers.google.com/games/services/console/enabling).

4. Téléchargez le [SDK Google Play Games](https://github.com/playgameservices/play-games-plugin-for-unity) et installez-le.

5. Installez le SDK PlayFab pour Unity (si vous ne savez pas comment procéder, suivez le [guide de démarrage rapide Unity3D](/fr/services/playfab/sdks/unity3d/quickstart)).

## Configuration de Google Play Games

Vous pouvez configurer Google Play Games à partir des outils installés avec le SDK Google Play Games. Pour accéder à ces outils :

* Accédez à l'onglet **Window**.
* Sélectionnez **Google Play Games**.
* Accédez à **Setup**.
* Ouvrez ensuite **Android Setup**.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-configuring-google-play-games.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=cc4e610420ae613914a545645f437f28" alt="Configuration de Google Play Games" width="698" height="156" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-configuring-google-play-games.png" />
* La fenêtre de configuration Android s'affiche ; nous devons saisir la définition des ressources (Resources Definition) et le Web App Client ID dans cet écran.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-paste-android-resources-empty.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=b13a6bfbd822a8442c007a5163769cf3" alt="Collage des ressources Android, champ vide" width="653" height="578" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-paste-android-resources-empty.png" />

### Obtention de la définition des ressources

* Suivez [ces](https://developer.android.com/games/pgs/unity/unity-start#get-android-resources) étapes pour obtenir la définition de vos ressources Android.

### Obtention du Web App Client ID

Pour que Google Sign-In fonctionne avec PlayFab, vous devez utiliser un Web Client ID, que vous pouvez obtenir en créant des informations d'identification OAuth Client ID de type « Web application ».

Avant de créer l'OAuth Client ID, vous devez connaître le **point de terminaison d'API** PlayFab, que vous pouvez trouver en suivant ces étapes :

* Connectez-vous à [Game Manager](https://developer.playfab.com/).

* Sélectionnez votre titre.

* Accédez aux paramètres de votre titre en cliquant sur l'**icône d'engrenage** à côté du nom du titre et sélectionnez **Title Settings**.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-title-settings.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=54512b7841fc8a5d274f0012efca8998" alt="Paramètres du titre PlayFab" width="290" height="223" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-title-settings.png" />

* Sélectionnez l'onglet **API Features**.

* Copiez le contenu du champ **API endpoint**.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-api-endpoint.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=80e6521a94996698755cfe971e321438" alt="Google Play Developer Console : entrer le point de terminaison d'API" width="539" height="293" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-api-endpoint.png" />

Maintenant que vous connaissez le point de terminaison d'API de votre titre, suivez les étapes décrites [ici](https://developers.google.com/workspace/guides/create-credentials#web-application) pour créer les informations d'identification OAuth Client ID.

* Lors de la création du Client ID, vous devez ajouter le point de terminaison d'API en tant qu'**Authorized JavaScript origin** pour votre Client ID.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-javascript-origins.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=9a2f0d445c948f5386bae1350a4d5074" alt="Origines JavaScript autorisées" width="504" height="215" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-javascript-origins.png" />

* Veillez également à ajouter l'URI de redirection de votre propre application en tant qu'**Authorized Redirect URI**. Si vous n'effectuez pas cette étape, vous obtiendrez une erreur **mismatch redirect\_uri**.

  <img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-redirect-uris.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=dc66e1b57e200b52f04f5f0ac13f16a2" alt="URI de redirection autorisés" width="514" height="206" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-redirect-uris.png" />

Après la création du Client ID, un écran semblable au suivant s'affiche, dans lequel vous obtenez la chaîne Client ID générée et un Client Secret.

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-client-id-created.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=87ed059a93128acb745348cdfb97e859" alt="OAuth Client ID créé" width="500" height="540" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-client-id-created.png" />

Vous pouvez maintenant revenir à la fenêtre de configuration Android dans Unity et coller l'ID client dans la zone de texte **Client ID** :

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-paste-client-id.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=e880647b4bccd88ff590b840b8d1f642" alt="Coller le Client ID" width="651" height="119" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-paste-client-id.png" />

Maintenant que les deux valeurs sont renseignées, vous pouvez sélectionner **Setup** :

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-setup-android-configuration.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=83928abc8c46b9fac2698afc9f069219" alt="Configuration Android terminée" width="653" height="582" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-setup-android-configuration.png" />

## Configuration de la connexion Google dans PlayFab

PlayFab dispose de son propre processus de configuration de la connexion Google. Vous pouvez effectuer cette configuration dans votre compte de développeur PlayFab. Si vous n'en avez pas, vous pouvez [créer gratuitement un compte de développeur](https://developer.playfab.com).

Pour configurer Google dans PlayFab :

* Accédez à la section **Add-ons** de votre tableau de bord.
* Accédez au **Google Add-On**.
* Sélectionnez ensuite le bouton **Install Google**.

Vous devez saisir quelques informations dans ce formulaire :

* **Google App Package ID** : ce champ correspond au nom de votre package Android. Par exemple, notre exemple utilise `com.playfab.gpgexample`.
* **Google App License Key** : bien que ce champ soit obligatoire, il n'est pas lié à Google Sign-In. Ce champ permet de configurer la validation des reçus à l'aide de nos **API de validation des reçus**.

<Note>
  Vous pouvez obtenir cette clé de licence dans la [Google Developer Console](https://play.google.com/apps/publish) : accédez à votre application, dans la section **Monetize**. Sélectionnez la section intitulée **Monetization Setup**. Faites défiler la page jusqu'à la zone de texte **Licensing**, puis copiez et collez la clé publique RSA encodée en Base64 dans ce champ.
</Note>

* **Google OAuth Client ID** : le Web Client ID que vous avez utilisé lors de la configuration du **SDK Google Play Games** dans Unity.
* **Google OAuth Client Secret** : la clé secrète obtenue lors de la création de l'OAuth Client ID.
* **Service Account Key** : ce champ attend une chaîne JSON de clé de compte de service. Vous devez créer une clé de compte de service en suivant [ces](https://developers.google.com/workspace/guides/create-credentials#create_a_service_account) étapes. Créez ensuite des informations d'identification pour ce compte de service en suivant les étapes décrites [ici](https://developers.google.com/workspace/guides/create-credentials#create_credentials_for_a_service_account). Une fois le fichier JSON des informations d'identification obtenu, collez l'intégralité de son contenu JSON dans ce champ.

La configuration du module complémentaire doit ressembler à ceci avant l'enregistrement :

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-google-addon-config.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=481bc6a5ddebf25c3194630e2444c753" alt="Configuration du module complémentaire Google dans PlayFab" width="550" height="713" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-google-addon-config.png" />

<Tip>
  N'oubliez pas de sélectionner **Save Settings** !
</Tip>

## Ajout de la connexion Google à votre jeu Unity

Le code nécessaire pour faire fonctionner la connexion Google est assez réduit. Il y a le code d'initialisation, que vous placez dans votre méthode Start (ou à tout endroit où vous initialisez ou démarrez votre application).

Ce code peut se trouver à différents endroits, selon l'architecture et le framework de votre jeu ou de votre application. Dans tous les cas, le code suivant initialise Google Play Games.

<Note>
  Veillez *bien* à ne pas oublier les instructions **using**, afin de pouvoir utiliser le SDK Google Play Games.
</Note>

```csharp theme={null}
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;

public class PFGoogleSignInUnity : MonoBehaviour
{
    void Start()
    {
        PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status)
    {
        if (status == SignInStatus.Success)
        {
            PlayGamesPlatform.Instance.RequestServerSideAccess(false, ProcessServerAuthCode);
        }
    }

    private void ProcessServerAuthCode(string serverAuthCode)
    {
        Debug.Log("Server Auth Code: " + serverAuthCode);

        var request = new LoginWithGooglePlayGamesServicesRequest
        {
            ServerAuthCode = serverAuthCode,
            CreateAccount = true,
            TitleId = PlayFabSettings.TitleId
        };

        PlayFabClientAPI.LoginWithGooglePlayGamesServices(request, OnLoginWithGooglePlayGamesServicesSuccess, OnLoginWithGooglePlayGamesServicesFailure);
    }

    private void OnLoginWithGooglePlayGamesServicesSuccess(LoginResult result)
    {
        Debug.Log("PF Login Success LoginWithGooglePlayGamesServices");
    }

    private void OnLoginWithGooglePlayGamesServicesFailure(PlayFabError error)
    {
        Debug.Log("PF Login Failure LoginWithGooglePlayGamesServices: " + error.GenerateErrorReport());
    }
}
```

Voyons en détail ce qui se passe :

* Tout d'abord, nous nous connectons avec `PlayGamesPlatform.Instance.Authenticate` : cette fonction reçoit en paramètre une fonction de rappel qui gère le résultat et nous indique si l'utilisateur a pu se connecter, en fonction du *SignInStatus* reçu.
* Si vous n'ajoutez pas votre compte de test à votre application, le résultat *SignInStatus* du rappel est toujours *Canceled* lors des tests. Si ce problème se produit, suivez les étapes de [ce](https://developers.google.com/games/services/console/testpub) guide pour ajouter des testeurs à votre application Google.

<Note>
  C'est l'appel à `PlayGamesPlatform.Instance.Authenticate` qui déclenche l'affichage de la boîte de dialogue de connexion **Google Play Games**.
</Note>

* Ensuite, si la connexion réussit, nous appelons `PlayGamesPlatform.Instance.RequestServerSideAccess`, qui reçoit un autre rappel et renvoie la chaîne ServerAuthCode.

* Nous effectuons ensuite l'appel `PlayFabClientAPI.LoginWithGooglePlayGamesServices` et transmettons l'`AuthCode` que nous venons d'obtenir de Google en tant que paramètre `ServerAuthCode`.

* Enfin, selon le résultat de l'appel `LoginWithGooglePlayGamesServices`, `OnLoginWithGooglePlayGamesServicesSuccess` ou `OnLoginWithGooglePlayGamesServicesFailure` est appelé ; ces rappels gèrent le résultat de votre opération de connexion à PlayFab. À ce stade, une connexion réussie devrait apparaître dans votre tableau de bord !

Nous espérons que ce guide vous a été utile. Si vous avez des questions, n'hésitez pas à les poser sur nos [forums communautaires](https://community.playfab.com/).


## Related topics

- [Configuration de l'authentification PlayFab avec Facebook et Unity](/fr/services/playfab/identity/player-identity/platform-specific-authentication/facebook-unity.md)
- [Migrer les jeux Unity vers la connexion Google Play Games](/fr/services/playfab/identity/player-identity/platform-specific-authentication/google-play-games-sign-in-migration.md)
- [Configuration de l'authentification PlayFab avec Kongregate et Unity](/fr/services/playfab/identity/player-identity/platform-specific-authentication/kongregate-unity.md)
- [Configuration de l'authentification PlayFab avec Google et HTML5](/fr/services/playfab/identity/player-identity/platform-specific-authentication/google-html5.md)
- [Configuration de l'authentification PlayFab avec Steam et Unity](/fr/services/playfab/identity/player-identity/platform-specific-authentication/steam-unity.md)
