> ## 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 Google Play Games Sign-In dans Unity

> Tutoriel étape par étape pour ajouter Google Play Games Sign-In à un projet Unity avec le PlayFab SDK, 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 PlayFab Unity Editor et le Unity SDK](/fr-CA/services/playfab/sdks/unity3d/quickstart).
* Le [Google Play Games SDK](https://github.com/playgameservices/play-games-plugin-for-unity).
* Une bonne connaissance des [principes de base et meilleures pratiques de connexion](/fr-CA/services/playfab/identity/player-identity/login/login-basics-best-practices).

## Mise en route

Nous commençons par configurer quelques éléments de base dans Google Play. Il existe quelques bons guides expliquant comment accomplir 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 téléversez-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 sur la façon de publier votre application dans le canal **Internal testing**. Lors du processus de signature, sachez que vous devez utiliser votre propre magasin de clés (keystore) pour votre app bundle. Consultez [ce](https://docs.unity3d.com/Manual/android-keystore-create.html) document pour savoir comment créer un magasin de clés.

3. Configurez les services Google Play Games 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 [Google Play Games SDK](https://github.com/playgameservices/play-games-plugin-for-unity) et installez-le.

5. Installez le PlayFab Unity SDK (si vous ne savez pas comment effectuer cette tâche, suivez le [guide de démarrage rapide Unity3D](/fr-CA/services/playfab/sdks/unity3d/quickstart)).

## Configuration de Google Play Games

Vous pouvez configurer Google Play Games à partir de l'ensemble d'outils installé avec le Google Play Games SDK. 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 entrer la définition des ressources (Resources Definition) et l'ID client de l'application Web (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="Coller les ressources Android - 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 de l'ID client de l'application Web

Pour que Google Sign-In fonctionne avec PlayFab, vous devez utiliser un ID client Web, 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 votre **API Endpoint** 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 de l'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 l'API Endpoint 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 l'API endpoint comme **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" />

* Assurez-vous également d'ajouter l'URI de redirection de votre propre application comme **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 avoir créé le Client ID, vous obtiendrez un écran semblable au suivant, où figurent 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 l'ID client" 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 remplies, 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 possè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 [vous inscrire pour obtenir un compte de développeur gratuit](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**.
* À partir de là, sélectionnez le bouton **Install Google**.

Vous devez entrer quelques éléments dans ce formulaire :

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

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

* Le **Google OAuth Client ID** - L'ID client Web que vous avez utilisé lors de la configuration du **Google Play Games SDK** dans Unity.
* Le **Google OAuth Client Secret** - La clé secrète que vous avez obtenue lors de la création de l'OAuth Client ID.
* La **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). Après avoir obtenu le fichier JSON des informations d'identification, collez tout son contenu JSON dans ce champ.

La configuration du module complémentaire devrait 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 minimal. 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 cadriciel de votre jeu ou de votre application. Dans tous les cas, le code suivant initialise Google Play Games.

<Note>
  Assurez-vous de *ne pas* oublier les instructions **using**, afin de pouvoir utiliser le Google Play Games SDK.
</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 traite le résultat et nous indique si l'utilisateur a pu se connecter avec succès 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 retourne la chaîne ServerAuthCode.

* Puis, nous effectuons l'appel `PlayFabClientAPI.LoginWithGooglePlayGamesServices` et passons l'`AuthCode` que nous venons d'obtenir de Google comme paramètre `ServerAuthCode`.

* Enfin, selon le résultat de l'appel `LoginWithGooglePlayGamesServices`, `OnLoginWithGooglePlayGamesServicesSuccess` ou `OnLoginWithGooglePlayGamesServicesFailure` est appelé; ces rappels sont ceux qui traitent le résultat de votre opération de connexion à PlayFab. À ce stade, vous devriez voir une connexion réussie 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 dans nos [forums communautaires](https://community.playfab.com/).


## Related topics

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