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

# Autenticação do PlayFab com a entrada com o Google Play Games no Unity

> Tutorial passo a passo para adicionar a entrada com o Google Play Games a um projeto Unity com o SDK do PlayFab, abordando a configuração do Play Console e a autenticação de jogadores.

# Configurar a autenticação do PlayFab usando a entrada com o Google Play Games no Unity

## Pré-requisitos

* Um projeto criado usando o mecanismo de jogo Unity.
* Uma conta de desenvolvedor do Google.
* Uma conta de desenvolvedor do PlayFab com acesso a um título de jogo no PlayFab.
* As [extensões do Editor do Unity e o SDK do Unity do PlayFab](/pt-BR/services/playfab/sdks/unity3d/quickstart).
* O [SDK do Google Play Games](https://github.com/playgameservices/play-games-plugin-for-unity).
* Familiaridade com os [conceitos básicos e práticas recomendadas de login](/pt-BR/services/playfab/identity/player-identity/login/login-basics-best-practices).

## Introdução

Primeiro, começamos configurando alguns itens básicos no Google Play. Existem alguns bons guias sobre como realizar algumas dessas tarefas, então não vamos reinventar a roda.

1. Crie um **Application** - Se você não tiver um aplicativo criado, será necessário fazer isso no [Google Play Developer Console](https://play.google.com/apps/publish).

2. Compile o AAB do seu jogo e carregue-o para testes internos. Você pode seguir [este](https://support.google.com/googleplay/android-developer/answer/9859348?visit_id=638373214207471441-2235763004\&rd=1) guia sobre como lançar seu aplicativo na faixa de **Internal testing**. Durante o processo de assinatura, considere que, para seu pacote de aplicativo, você deve usar seu próprio keystore para essa finalidade. Consulte [este](https://docs.unity3d.com/Manual/android-keystore-create.html) documento sobre como criar um keystore.

3. Configure o Google Play Games Services seguindo as instruções desta página: [Setting Up Google Play Games Services](https://developers.google.com/games/services/console/enabling).

4. Baixe o [SDK do Google Play Games](https://github.com/playgameservices/play-games-plugin-for-unity) e instale-o.

5. Instale o SDK do Unity do PlayFab (se você não souber como fazer essa tarefa, siga o [guia de início rápido do Unity3D](/pt-BR/services/playfab/sdks/unity3d/quickstart)).

## Configurar o Google Play Games

Você pode configurar o Google Play Games a partir do conjunto de ferramentas instalado com o SDK do Google Play Games. Você pode acessar essas ferramentas:

* Indo até a guia **Window**.
* Selecionando **Google Play Games**.
* Indo até **Setup**.
* Em seguida, acessando **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="Configurar o 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" />
* A janela de configuração do Android é exibida; precisamos inserir a definição de recursos (Resources Definition) e a Web App Client ID nesta tela.

  <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="Colar os recursos do Android: vazio" width="653" height="578" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-paste-android-resources-empty.png" />

### Obter a definição de recursos

* Siga [estas](https://developer.android.com/games/pgs/unity/unity-start#get-android-resources) etapas para obter a definição de recursos do Android.

### Obter a Web App Client ID

Para que a entrada com o Google funcione com o PlayFab, você precisa usar uma Web Client ID, que pode ser obtida criando uma credencial OAuth Client ID do tipo "Web application".

Antes de criar a OAuth Client ID, você precisa saber o **API Endpoint** do PlayFab, que pode ser encontrado seguindo estas etapas:

* Faça login no [Game Manager](https://developer.playfab.com/).

* Selecione seu título.

* Vá até as configurações do título clicando no **ícone de engrenagem** ao lado do nome do título e selecione **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="Configurações do título do PF" width="290" height="223" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-title-settings.png" />

* Selecione a guia **API Features**.

* Copie o campo **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: inserir o ponto de extremidade da API" width="539" height="293" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-pf-api-endpoint.png" />

Agora que você conhece o API Endpoint do seu título, siga as etapas descritas [aqui](https://developers.google.com/workspace/guides/create-credentials#web-application) para criar a credencial OAuth Client ID.

* Ao criar a Client ID, você precisa adicionar o ponto de extremidade da API como uma **Authorized JavaScript origin** para sua 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="Origens JavaScript autorizadas" width="504" height="215" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-javascript-origins.png" />

* Além disso, certifique-se de adicionar o URI de redirecionamento do seu próprio aplicativo como um **Authorized Redirect URI**. Se você não fizer esta etapa, receberá um erro **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="URIs de redirecionamento autorizados" width="514" height="206" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-authorized-redirect-uris.png" />

Depois de criar a Client ID, você verá uma tela semelhante à seguinte, na qual obterá a cadeia de caracteres da Client ID gerada e um 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 criada" width="500" height="540" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-client-id-created.png" />

Agora, você pode voltar à janela de configuração do Android no Unity e colar a Client ID na caixa de texto **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="Colar a 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" />

Agora que ambos os valores estão preenchidos, você pode selecionar **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="Configuração do Android concluída" width="653" height="582" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/google-unity/google-unity-setup-android-configuration.png" />

## Configuração da entrada com o Google no PlayFab

O PlayFab tem seu próprio processo para configurar a entrada com o Google. Você pode fazer essa configuração na sua conta de desenvolvedor do PlayFab. Se não tiver uma, você pode [criar uma conta de desenvolvedor gratuita](https://developer.playfab.com).

Para configurar o Google no PlayFab:

* Navegue até a seção **Add-ons** no seu painel.
* Vá até o **Google Add-On**.
* Nele, selecione o botão **Install Google**.

Há algumas informações que você precisa inserir neste formulário:

* O **Google App Package ID** - Este campo é o nome do seu pacote Android. Por exemplo, nosso exemplo usa `com.playfab.gpgexample`.
* A **Google App License Key** - Embora este campo seja obrigatório, ele não está relacionado à entrada com o Google. Este campo serve para configurar uma validação de recibo usando nossas **Receipt Validation APIs**.

<Note>
  Você pode obter essa License Key no [Google Developer Console](https://play.google.com/apps/publish): navegue até seu aplicativo, na seção **Monetize**. Selecione a seção intitulada **Monetization Setup**. Nela, role para baixo até ver uma caixa de texto **Licensing**, copie a chave pública RSA codificada em Base64 e cole-a neste campo.
</Note>

* A **Google OAuth Client ID** - A Web Client ID que você usou na configuração do **Google Play Games SDK** no Unity.
* O **Google OAuth Client Secret** - A chave secreta que você obteve ao criar a OAuth Client ID.
* A **Service Account Key** - Este campo espera uma cadeia de caracteres JSON de chave de conta de serviço; você precisa criar uma chave de conta de serviço seguindo [estas](https://developers.google.com/workspace/guides/create-credentials#create_a_service_account) etapas. Em seguida, crie credenciais para essa conta de serviço seguindo as etapas [aqui](https://developers.google.com/workspace/guides/create-credentials#create_credentials_for_a_service_account). Depois de obter o arquivo JSON de credenciais, cole todo o conteúdo JSON neste campo.

A configuração do complemento deve ficar assim antes de salvar:

<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="Configuração do complemento do Google no 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ão se esqueça de selecionar **Save Settings**!
</Tip>

## Adicionar a entrada com o Google ao seu jogo Unity

O código para fazer a entrada com o Google funcionar é bastante simples. Há o código de inicialização, que você coloca no seu Start (ou em qualquer lugar em que você inicializa ou inicia seu aplicativo).

Esse código pode estar em lugares diferentes, dependendo da arquitetura e da estrutura do seu jogo ou aplicativo. De qualquer forma, o código a seguir inicializa o Google Play Games.

<Note>
  Certifique-se de *não* esquecer as instruções **using**, para que você possa usar o SDK do 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());
    }
}
```

Vamos detalhar exatamente o que está acontecendo:

* Primeiro, fazemos login com `PlayGamesPlatform.Instance.Authenticate` - Essa função recebe uma função de retorno de chamada como parâmetro, que manipula o resultado e nos informa se o usuário conseguiu fazer login com êxito com base no *SignInStatus* recebido.
* Se você não adicionar sua conta de teste ao aplicativo, o resultado *SignInStatus* do retorno de chamada será sempre *Canceled* durante os testes. Caso esse problema ocorra, siga as etapas [deste](https://developers.google.com/games/services/console/testpub) guia para adicionar testadores ao seu aplicativo do Google.

<Note>
  A chamada para `PlayGamesPlatform.Instance.Authenticate` é o que fará a caixa de diálogo de entrada do **Google Play Games** ser exibida.
</Note>

* Em seguida, se o login for bem-sucedido, fazemos uma chamada para `PlayGamesPlatform.Instance.RequestServerSideAccess`, que recebe outro retorno de chamada e retorna a cadeia de caracteres ServerAuthCode.

* Depois, fazemos a chamada `PlayFabClientAPI.LoginWithGooglePlayGamesServices` e passamos o `AuthCode` que acabamos de obter do Google como o parâmetro `ServerAuthCode`.

* Por fim, dependendo do resultado da chamada `LoginWithGooglePlayGamesServices`, `OnLoginWithGooglePlayGamesServicesSuccess` ou `OnLoginWithGooglePlayGamesServicesFailure` é chamado; esses retornos de chamada são os que manipulam o resultado da sua operação de login no PlayFab. Neste ponto, você deverá ver um login bem-sucedido no seu painel!

Esperamos que este guia tenha ajudado você. Mas, se tiver dúvidas, fique à vontade para perguntá-las em nossos [fóruns da comunidade](https://community.playfab.com/).


## Related topics

- [Migrar da entrada com o Google para o Google Play Games no Unity](/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/google-play-games-sign-in-migration-details.md)
- [Fallback da migração da entrada com o Google para a entrada com o Play Games](/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/google-play-games-sign-in-migration-fallback.md)
- [Migrar jogos Unity para a entrada com o Google Play Games](/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/google-play-games-sign-in-migration.md)
- [Configurar a autenticação do PlayFab usando Kongregate e Unity](/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/kongregate-unity.md)
- [Configurar a autenticação do PlayFab usando Google e HTML5](/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/google-html5.md)
