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

# RGPD PlayFab - Suppression et exportation des données des joueurs

> Comment utiliser les API Admin de PlayFab pour exporter ou supprimer les données d'un joueur afin de vous conformer au Règlement général sur la protection des données (RGPD).

PlayFab s'engage à se conformer au Règlement général sur la protection des données (RGPD) et, en tant que votre fournisseur de services, à vous fournir les mécanismes dont vous avez besoin pour permettre aux joueurs de consulter ou de supprimer les données stockées à leur sujet.

Bien que nous ne puissions pas vous fournir de conseils juridiques (*et nous vous encourageons à consulter un conseiller juridique pour assurer votre conformité au RGPD*), nous sommes là pour vous aider à remplir vos obligations en vertu du RGPD.

PlayFab propose trois API pour vous aider à répondre aux demandes relatives aux données des joueurs :

* [GetPlayedTitleList](xref:titleid.playfabapi.com.admin.accountmanagement.getplayedtitlelist) - Appelez cette API pour obtenir une liste de TitleIds auxquels des données sont associées pour le joueur donné. Cette liste est délimitée par PublisherID et représente l'ensemble des titres qui seraient touchés si vous supprimiez ou exportiez les données de ce joueur.
* [DeleteMasterPlayerAccount](xref:titleid.playfabapi.com.admin.accountmanagement.deletemasterplayeraccount) - Appelez cette API pour supprimer les enregistrements d'un joueur donné.
* [ExportMasterPlayerData](xref:titleid.playfabapi.com.admin.accountmanagement.exportmasterplayerdata) - Appelez cette API pour exporter l'ensemble des données et des enregistrements associés à un joueur donné.

## Assurez-vous de trouver toutes les données

Avant d'utiliser les API `DeleteMasterPlayerAccount` ou `ExportMasterPlayerData`, il est important de garder à l'esprit que vos joueurs peuvent avoir créé plusieurs comptes Master Player auprès de votre studio.

Cette situation peut se produire lorsqu'un joueur utilise différents appareils ou différents identifiants pour jouer à vos titres. Comme il fournit des identifiants différents et sans lien entre eux (par exemple, une adresse courriel ou un compte de réseau social différent), nous l'interprétons comme un joueur unique.

Un joueur peut aussi avoir plusieurs comptes Master Player si vous avez configuré votre studio pour utiliser plusieurs Publisher IDs; toutefois, il n'est pas courant d'avoir plusieurs Publisher IDs.

Vous pouvez vérifier les Publisher IDs de votre titre dans le Game Manager de PlayFab, dans l'onglet **API Features** du menu des paramètres de chaque titre.

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=b26ea6fe4188ebef5fb76a58b4ae1b07" alt="PlayFab - Paramètres - Onglet API" width="2560" height="1184" data-path="images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png" />

Vous connaissez vos titres et la façon dont ils authentifient vos joueurs. Avant d'appeler `DeleteMasterPlayerAccount` ou `ExportMasterPlayerData`, assurez-vous de recueillir le bon ensemble d'identifiants d'appareil et/ou d'identifiants de connexion auprès de vos joueurs.

Grâce à ces identifiants, nous pouvons déterminer les PlayFabIds de *chaque* compte Master Player.

Les API suivantes vous aident à passer des identifiants au `PlayFabId` :

* [GetUserAccountInfo](xref:titleid.playfabapi.com.admin.accountmanagement.getuseraccountinfo) - Cette API vous aide à trouver des joueurs par adresse courriel, `TitleDisplayName`, `PlayFabId` ou `PlayFabUsername`.
* [GetPlayerIdFromAuthToken](xref:titleid.playfabapi.com.admin.accountmanagement.getplayeridfromauthtoken) - Cette API vous permet de trouver un joueur à partir d'un `AuthToken` précis, qui est accordé au joueur lorsqu'il se connecte.
* [GetPlayFabIDsFromFacebookIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromfacebookids) - Cette API détermine le `PlayFabId` du joueur à partir d'un ou de plusieurs `FacebookId`.
* [GetPlayFabIDsFromSteamIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromsteamids) - Cette API détermine le `PlayFabId` du joueur à partir d'un ou de plusieurs `SteamIds`.

<Note>
  Toutes ces API sont propres à un titre. Les deux premières sont des API Admin et les deux dernières sont des API Server.
</Note>

Même si votre joueur n'a qu'un seul PlayFabId, il peut avoir joué à plus d'un de vos titres avec cet ID. Sa demande de données peut donc couvrir plusieurs titres.

Pour obtenir cette liste de titres, appelez `GetPlayedTitleList` pour chaque PlayFabId. Vous *pourriez* vouloir informer le joueur que sa demande touchera la liste de titres retournée.

De plus, `GetPlayedTitleList` retourne des `TitleIds`, *et non* des `Title Names`; envisagez de convertir ces ID en `Title Names` avant de les afficher dans une page de confirmation.

Voici un peu de pseudocode pour mieux illustrer ce que nous voulons dire...

```csharp theme={null}
//Here you would iterate through a request of known Ids, Emails, linked accounts  
//or other PlayFab searchable info on the player that you have.
//and store it in user credentials for that player.
user {
  credentials: (email/ids/linked accounts)
}

//create a variable to hold a list of all the PlayFabIds you want to remove.
PlayFabIdList

//create a list of affected titles
AffectedTitles

//Keep track of all your titles, this is important
//and should include all titles across all your namespaces.
foreach(title in <all my titles>){

    //each user record you have for the player, you should have a list of credentials for that player
    //so you can find them in PlayFab
    foreach(cred in user.credentials){
      //There are a few helper Admin and Server API's that help you do this part.
      //See below this pseudo code block for some tips!
      pfid = <find PlayFabId in Title using the credential>
      PlayFabIdList.add(pfid)
    }

    //go through the list of PlayFabIds that you have and fine all titles that
    //performing the action would affect
    foreach(pfid in PlayFabIdList){
      AffectedTitles = title.GetPlayedTitleList(pfid)
    }
}
```

Voici un exemple rapide d'utilisation de **GetPlayedTitleList**.

```csharp theme={null}
public static async void StartFindTitlesExample(Action<PlayFabError> callback)
{

    var task = await PlayFabAdminAPI.GetPlayedTitleListAsync(new GetPlayedTitleListRequest() {
        PlayFabId = PlayFabId
    });

    if(task.Error != null)
    {
        callback(task.Error);
        return;
    }

    var TitleList = task.Result.TitleIds;
    foreach (var title in TitleList)
    {
        Console.WriteLine(string.Format("Title Found: {0}", title));
    }
    callback(null);
}
```

À ce stade, vous disposez d'une liste de `PlayFabIds` pour ce joueur (selon les identifiants qu'il a fournis) et d'une liste de titres pour chaque `PlayFabId`. Et maintenant?

Vous êtes maintenant prêt à supprimer ou à exporter!

## Autres considérations

Il est facile de causer du tort avec ces API. Exporter les données du mauvais joueur ou supprimer le mauvais joueur peut être très dommageable, et c'est **permanent**!

Il vous incombe, en tant que développeur de jeux, de vérifier que les identifiants correspondent au joueur qui demande l'exportation ou la suppression de ses données. PlayFab ne fournit aucun type de vérification lors de l'utilisation de ces API.

Cependant, PlayFab offre une [fonctionnalité de vérification des adresses courriel](/fr-CA/services/playfab/live-service-management/game-configuration/title-communications/emails/using-a-rule-to-verify-a-contact-email-address). Mais notre solution n'est pas la seule option de vérification. Vous pouvez aussi créer votre propre processus.

Peu importe la technologie que vous utilisez, nous vous suggérons d'effectuer une forme de vérification avant d'exécuter l'une ou l'autre de ces actions.


## Related topics

- [RGPD PlayFab - Exporter les données des joueurs](/fr-CA/services/playfab/data-analytics/privacy-compliance/gdpr-exporting-player-data.md)
- [RGPD PlayFab - Supprimer les données des joueurs](/fr-CA/services/playfab/data-analytics/privacy-compliance/gdpr-deleting-player-data.md)
- [Documentation sur les données et l'analytique PlayFab](/fr-CA/services/playfab/data-analytics/index.md)
- [Documentation de PlayFab Player progression](/fr-CA/services/playfab/player-progression/index.md)
- [Exportation Insights](/fr-CA/services/playfab/data-analytics/legacy/insights/export.md)
