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

# GDPR do PlayFab - Excluindo e exportando dados de jogadores

> Como usar as APIs de Admin do PlayFab para exportar ou excluir os dados de um jogador para que você possa estar em conformidade com o Regulamento Geral sobre a Proteção de Dados (GDPR).

O PlayFab tem o compromisso de estar em conformidade com o Regulamento Geral sobre a Proteção de Dados (GDPR) e, como seu provedor de serviços, de garantir que forneceremos os recursos necessários para permitir que os jogadores visualizem ou excluam os dados armazenados sobre eles.

Embora não possamos fornecer aconselhamento jurídico (*e incentivamos que você busque assessoria jurídica para garantir sua conformidade com o GDPR*), estamos aqui para ajudar você a cumprir suas obrigações sob o GDPR.

O PlayFab tem três APIs disponíveis para ajudar você a responder às solicitações de dados de jogadores:

* [GetPlayedTitleList](xref:titleid.playfabapi.com.admin.accountmanagement.getplayedtitlelist) - Chame esta API para obter uma lista de TitleIds que têm dados associados ao jogador informado. Essa lista tem o escopo definido por PublisherID e representa o conjunto de títulos que seriam afetados se você excluísse ou exportasse os dados desse jogador.
* [DeleteMasterPlayerAccount](xref:titleid.playfabapi.com.admin.accountmanagement.deletemasterplayeraccount) - Chame esta API para excluir os registros de um determinado jogador.
* [ExportMasterPlayerData](xref:titleid.playfabapi.com.admin.accountmanagement.exportmasterplayerdata) - Chame esta API para exportar todos os dados e registros associados a um determinado jogador.

## Certifique-se de encontrar todos os dados

Antes de usar as APIs `DeleteMasterPlayerAccount` ou `ExportMasterPlayerData`, é importante ter em mente que seus jogadores podem ter criado várias contas de Master Player com seu estúdio.

Essa situação pode acontecer quando um jogador usa dispositivos diferentes ou credenciais diferentes para jogar seu(s) título(s). Como ele está fornecendo credenciais diferentes e não relacionadas (por exemplo, um endereço de email ou uma conta de rede social diferente), nós o interpretamos como um jogador único.

Outra forma de um jogador ter várias contas de Master Player é se você tiver configurado seu estúdio para usar vários Publisher IDs; no entanto, ter vários Publisher IDs não é comum.

Você pode verificar os Publisher IDs do seu título no PlayFab Game Manager, na guia **API Features** do menu de configurações de cada título.

<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 - Configurações - Guia API" width="2560" height="1184" data-path="images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png" />

Você conhece seus títulos e como eles autenticam seus jogadores. Antes de chamar `DeleteMasterPlayerAccount` ou `ExportMasterPlayerData`, certifique-se de coletar o conjunto correto de IDs de dispositivo e/ou credenciais dos seus jogadores.

Com essas credenciais, podemos identificar os PlayFabIds de *cada* conta de Master Player.

As APIs a seguir ajudam você a converter credenciais em `PlayFabId`:

* [GetUserAccountInfo](xref:titleid.playfabapi.com.admin.accountmanagement.getuseraccountinfo) - Esta API ajuda você a encontrar jogadores por email, `TitleDisplayName`, `PlayFabId` ou `PlayFabUsername`.
* [GetPlayerIdFromAuthToken](xref:titleid.playfabapi.com.admin.accountmanagement.getplayeridfromauthtoken) - Esta API permite encontrar um jogador a partir de um `AuthToken` específico, que é concedido ao jogador quando ele faz login.
* [GetPlayFabIDsFromFacebookIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromfacebookids) - Esta API obtém o `PlayFabId` do jogador a partir de um ou mais `FacebookId`(s).
* [GetPlayFabIDsFromSteamIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromsteamids) - Esta API obtém o `PlayFabId` do jogador a partir de um ou mais `SteamIds`.

<Note>
  Todas essas APIs são específicas do título. As duas primeiras são APIs de Admin e as duas últimas são APIs de Server.
</Note>

Mesmo que seu jogador tenha apenas um PlayFabId, ele pode ter jogado mais de um dos seus títulos com esse ID. Isso significa que a solicitação de dados dele pode abranger vários títulos.

Para obter essa lista de títulos, chame `GetPlayedTitleList` para cada PlayFabId. Você *pode* querer informar ao jogador que a solicitação dele afetará a lista de títulos retornada.

Além disso, `GetPlayedTitleList` retorna `TitleIds`, *não* `Title Names`. Considere converter esses IDs em `Title Names` antes de exibi-los em uma página de confirmação.

Aqui está um pequeno pseudocódigo para ilustrar melhor o que queremos dizer...

```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)
    }
}
```

Aqui está um exemplo rápido de como usar **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);
}
```

Neste ponto, você tem uma lista de `PlayFabIds` desse jogador (com base nas credenciais que ele compartilhou) e uma lista de títulos para cada `PlayFabId`. E agora?

Agora você está pronto para excluir ou exportar!

## Outras considerações

É fácil causar danos com essas APIs. Exportar dados do jogador errado ou excluí-lo pode ser muito prejudicial, e isso é **permanente**!

É sua responsabilidade, como desenvolvedor do jogo, verificar se as credenciais correspondem ao jogador que está solicitando a exportação ou exclusão dos dados dele. O PlayFab não fornece nenhum tipo de verificação ao usar essas APIs.

No entanto, o PlayFab oferece um [recurso de verificação de email](/pt-BR/services/playfab/live-service-management/game-configuration/title-communications/emails/using-a-rule-to-verify-a-contact-email-address). Mas nossa solução não é a única opção de verificação. Você também pode criar seu próprio processo.

Independentemente da tecnologia que você usar, sugerimos que você faça algum tipo de verificação antes de executar qualquer uma dessas ações.


## Related topics

- [GDPR do PlayFab - Exportar dados do jogador](/pt-BR/services/playfab/data-analytics/privacy-compliance/gdpr-exporting-player-data.md)
- [GDPR do PlayFab - Excluir dados do jogador](/pt-BR/services/playfab/data-analytics/privacy-compliance/gdpr-deleting-player-data.md)
- [Documentação de dados e análises do PlayFab](/pt-BR/services/playfab/data-analytics/index.md)
- [Documentação de progressão do jogador do PlayFab](/pt-BR/services/playfab/player-progression/index.md)
- [Exportação do Insights](/pt-BR/services/playfab/data-analytics/legacy/insights/export.md)
