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

# Tutoriel : obtenir le profil d'un joueur

> Récupérez les données de profil d'un joueur PlayFab dans Unity à l'aide de GetPlayerProfile, configurez PlayerProfileViewConstraints et lisez les horodatages de création et de dernière connexion.

# Tutoriel : obtenir le profil d'un joueur

Dans ce tutoriel, vous allez apprendre à :

<Note>
  \[!div class="checklist"] \* Créer un utilisateur avec un nom d'affichage \* Effectuer un appel de profil de joueur \* Obtenir l'heure de création du joueur et l'heure de sa dernière connexion \* Configurer les contraintes d'affichage du profil des joueurs pour le titre \* Obtenir le profil du joueur au moyen de l'opération de connexion
</Note>

## Exigences

* Un [compte de développeur PlayFab](https://developer.playfab.com).
* Une copie installée de l'éditeur Unity. Pour installer Unity pour un usage personnel au moyen de Unity Hub, ou Unity+ pour un usage professionnel, consultez [Télécharger Unity](https://unity3d.com/get-unity/download).

<Note>
  Le SDK PlayFab Unity3D prend en charge l'éditeur Unity version 5.3 (publiée en décembre 2015) et ultérieure.
</Note>

* Un projet Unity \* il peut s'agir de l'un des éléments suivants :
  * Un tout nouveau projet. Pour plus d'informations, consultez [Démarrer Unity pour la première fois](https://docs.unity3d.com/550/Documentation/Manual/GettingStarted.html).
  * Un projet de tutoriel guidé. Pour plus d'informations, consultez [Bien démarrer avec Unity](https://learn.unity.com/).
  * Un projet existant.
* Le [SDK Unity3D](/fr-CA/services/playfab/sdks/unity3d) de PlayFab.

Pour ce tutoriel, des connaissances de base sur la création d'un joueur pour votre titre sont nécessaires, afin de pouvoir effectuer un `GetPlayerProfile` sur ce joueur.

Il est également utile de lire le [démarrage rapide de Game Manager](/fr-CA/services/playfab/live-service-management/gamemanager/quickstart) si vous ne connaissez pas Game Manager, car c'est là que nous configurons les contraintes de profil.

Les exemples C# de cet article sont écrits pour le SDK Unity. Le SDK Unity utilise un modèle piloté par les événements pour gérer les tâches non synchrones. Pour exécuter l'exemple de code avec le SDK C#, vous devez modifier le code afin d'utiliser un modèle de tâches asynchrones (async Task). Le nom des méthodes à modifier est suivi du suffixe Async dans leur signature. Par exemple, SetObject dans le SDK Unity devient SetObjectAsync dans le SDK C#. Pour plus d'informations, consultez [Programmation asynchrone avec async et await](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/).

## Créer un utilisateur avec un nom d'affichage

La première étape consiste à créer un joueur et à ajouter un nom d'affichage à l'utilisateur. Cet exemple crée un nouvel utilisateur avec le nom d'affichage `UnicornTossMaster`.

```csharp theme={null}
void CreatePlayerAndUpdateDisplayName() {
    PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest {
        CustomId = "PlayFabGetPlayerProfileCustomId",
        CreateAccount = true
    }, result => {
        Debug.Log("Successfully logged in a player with PlayFabId: " + result.PlayFabId);
        UpdateDisplayName();
    }, error => Debug.LogError(error.GenerateErrorReport()));
}

void UpdateDisplayName() {
    PlayFabClientAPI.UpdateUserTitleDisplayName( new UpdateUserTitleDisplayNameRequest {
        DisplayName = "UnicornTossMaster"
    }, result => {
        Debug.Log("The player's display name is now: " + result.DisplayName);
    }, error => Debug.LogError(error.GenerateErrorReport()));
}
```

La sortie de la console doit afficher :

```
Successfully logged in a player with PlayFabId: SOME_PLAYFAB_ID
The player's display name is now: UnicornTossMaster
```

## Effectuer un appel de profil de joueur

L'étape suivante consiste à créer un profil très basique pour le joueur usin

L'exemple suivant utilise un appel [GetPlayerProfile](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile) de base.

```csharp theme={null}
void GetPlayerProfile(string playFabId) {
    PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
        PlayFabId = playFabId,
        ProfileConstraints = new PlayerProfileViewConstraints() {
            ShowDisplayName = true
        }
    },
    result => Debug.Log("The player's DisplayName profile data is: " + result.PlayerProfile.DisplayName),
    error => Debug.LogError(error.GenerateErrorReport()));
}
```

La réponse inclut un objet [PlayerProfileModel](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofilemodel) qui contient le nom d'affichage `UnicornTossMaster` du joueur.

## Obtenir l'heure de création du joueur et l'heure de sa dernière connexion

L'objet [PlayerProfileModel](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofilemodel) contient de nombreuses données sur le joueur. À l'étape précédente, un `GetPlayerProfile` a été émis, et la réponse reçue ne contenait que les informations de nom d'affichage.

L'étape suivante consiste à obtenir *davantage* de données de profil pour le joueur. Pour ce faire, appelez `GetPlayerProfile` avec des champs supplémentaires dans le paramètre de requête [PlayerProfileViewConstraints](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofileviewconstraints).

L'exemple **C#** suivant modifie la méthode `GetPlayerProfile` de l'étape 2 et appelle `GetPlayerProfile` pour demander les champs `Created` et `LastLogin` en définissant leurs indicateurs dans [ProfileConstraints](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofileviewconstraints).

<Note>
  **Cet appel échouera à ce stade !!!**
</Note>

```csharp theme={null}
void CreatePlayerAndUpdateDisplayName(string playFabId) {
    PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
        PlayFabId = playFabId,
        ProfileConstraints = new PlayerProfileViewConstraints {
            ShowDisplayName = true,
            ShowCreated = true,
            ShowLastLogin = true
        }
    },
    result => Debug.Log("The player's profile Created date is: " + result.PlayerProfile.Created),
    error => Debug.LogError(error.GenerateErrorReport()));
}
```

Si vous exécutez cet exemple de code à ce stade, il retourne une erreur avec un `Error Code 1303`, `RequestViewConstraintParamsNotAllowed`, et un message d'erreur indiquant `Invalid view constraints`, avec une sortie JSON des contraintes actuellement définies pour le titre.

L'erreur se produit parce que vous n'avez pas encore configuré la possibilité d'afficher `Created` et `LastLogin` dans les paramètres de contraintes de profil de votre titre.

## Configurer les contraintes d'affichage du profil des joueurs pour le titre

Pour obtenir davantage de données lors de l'appel de l'API [GetPlayerProfile](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile), vous devez configurer les contraintes sur les données à mettre à disposition. Ces paramètres se trouvent dans les paramètres du titre dans Game Manager.

Par défaut, seul **Display name** était activé pour **ALLOW CLIENT ACCESS TO PROFILE PROPERTIES:**, ce qui vous permettait de récupérer la valeur **Display Name**.

Pour configurer des contraintes supplémentaires pour le titre :

* Dans [Game Manager](https://developer.playfab.com), sélectionnez votre titre.
* Sélectionnez l'icône d'engrenage en haut à gauche, puis **Title settings**.
* Sélectionnez l'onglet **Client Profile Options**.
* Pour activer à la fois **Created** et **LastLogin** dans [ProfileConstraints](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofileviewconstraints), cochez **Creation date** et **Last login time**, puis sélectionnez **SAVE CLIENT PROFILE OPTIONS**.

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/playfab-allow-client-access-to-profile-properties.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=e3bbe44c17680cdd24273e71fb2f7d80" alt="Paramètres PlayFab * Client Profile Options * Allow client access to profile properties" width="1227" height="937" data-path="images/playfab/player-progression/player-data/tutorials/playfab-allow-client-access-to-profile-properties.png" />

Désormais, lorsque vous appelez 1`CreatePlayerAndUpdateDisplayName`, il retourne l'objet [PlayerProfileModel](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofilemodel) avec les données relatives à l'heure de création de l'utilisateur, à sa dernière connexion et au nom d'affichage `UnicornTossMaster`.

## Obtenir le profil du joueur au moyen de l'opération de connexion

Dans la plupart des cas, vous souhaitez récupérer les données de profil du joueur dès sa connexion. L'API PlayFab vous permet de combiner l'appel de connexion et l'appel de récupération du profil du joueur en un seul appel.

L'exemple suivant montre comment obtenir les informations de profil au moyen d'une requête de connexion, en prenant `LoginWithCustomId` comme exemple.

<Note>
  Cela fonctionne avec *tous* les mécanismes de connexion.
</Note>

```csharp theme={null}
void CreatePlayerAndUpdateDisplayName(string customId) {
    PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest() {
        CustomId = customId,
        // Define info request parameters
        InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() {
            // And make sure PlayerProfile is included
            GetPlayerProfile = true,
            // Define rules for PlayerProfile request
            ProfileConstraints = new PlayerProfileViewConstraints() {
                // And make sure that both AvatarUrl and LastLogin are included.
                ShowAvatarUrl = true,
                ShowLastLogin = true,
            }
        }
    },
    result =>
    {
        // Extract the data you have requested
        var avatarUrl = result.InfoResultPayload.PlayerProfile.AvatarUrl;
    },
    error => Debug.LogError(error.GenerateErrorReport()));
}
```


## Related topics

- [Tutoriel d'exportation des joueurs d'un segment](/fr-CA/services/playfab/live-service-management/game-configuration/segmentation/segmentation-export-players-in-a-segment.md)
- [Tutoriel de comptage des joueurs d'un segment](/fr-CA/services/playfab/live-service-management/game-configuration/segmentation/segmentation-player-count.md)
- [Obtenir la valeur à ce jour (VTD) d'un joueur dans Economy (hérité)](/fr-CA/services/playfab/economy-monetization/economy/tutorials/getting-a-players-vtd.md)
- [Obtenir les données internes d'un joueur](/fr-CA/services/playfab/player-progression/player-data/how-to-get-internal-player-data.md)
- [Obtenir le profil du joueur](/fr-CA/services/playfab/api-references/rest/admin/account-management/get-player-profile.md)
