> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurar a autenticação do PlayFab usando Facebook e Unity

> Tutorial passo a passo para integrar o login do Facebook a um projeto Unity com o SDK do PlayFab, abordando a configuração do aplicativo do Facebook e o código de autenticação de jogadores.

Este tutorial orienta você em um exemplo de autenticação do PlayFab usando Facebook e Unity.

## Requisitos

* [Unity 5+](https://unity3d.com/) e um projeto criado.
* [Conta do Facebook](https://www.facebook.com/) para testes.
* [SDK do Facebook](https://developers.facebook.com/docs/unity/) importado no projeto.
* Título do [PlayFab](https://developer.playfab.com/) registrado.
* [SDK do PlayFab](https://aka.ms/playfabunitysdkdownload) importado no projeto com uma referência de título configurada.
* Familiaridade com os [conceitos básicos e práticas recomendadas de login](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/login/login-basics-best-practices.md).

## Implementação

### Registrar um aplicativo do Facebook

Comece navegando até o [Portal do Desenvolvedor do Facebook](https://developers.facebook.com/):

1. Passe o mouse sobre o botão **My Apps**.
2. Selecione **Add a New App**, conforme mostrado na imagem abaixo.

![Facebook: adicionar um novo aplicativo](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-add-a-new-app.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=8f2cf49110ee6fa800418dc19843cb16)

Uma nova janela pop-up de **Application** será aberta.

1. Insira um nome para seu **Application**.
2. Insira um **Contact Email**.

> [!NOTE]
>
> Certifique-se de criar seu próprio **Application Name** e **Email** *exclusivos*, conforme mostrado na imagem abaixo.

![Facebook: nova ID do aplicativo](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-new-app-id.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=7a0feb9725217dcca8d4b0fb861e3c3e)

1. Navegue até a guia **Settings**.
2. Em seguida, vá para a subguia **Basic**.
3. Localize seu **Application ID**.
   * Copie-o para um local seguro e de fácil acesso.
     Ele será usado mais tarde para configurar o SDK do Facebook.

![Facebook: salvar a ID do aplicativo](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-save-app-id.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=540b62a0ad44a22f49fa944e2d6741d3)

Navegue até a [Ferramenta de Token de Acesso do Facebook](https://developers.facebook.com/tools/accesstoken/).

1. Localize seu **App** na lista.
2. Verifique se ele tem um **User Token** atribuído.

> [!NOTE]
>
> Se você *não* tiver um token de usuário atribuído, solicite um usando o botão à direita da tela. Consulte esta página sempre que precisar de um novo token de usuário. Se a autorização falhar durante os testes em um PC, a expiração do token pode ser o motivo mais provável. Atualize a página para obter um novo token de usuário e teste novamente.

![Ferramenta de Token de Acesso do Facebook](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/access-token-tool.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=8bcd65dadccacafbfe04227bd3d5ad4c)

1. Na página **Application Manager**, navegue até **+ Add Products**.
2. Localize a entrada **Facebook Login** e selecione **Get Started**.

![Facebook Login: introdução](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-html5/login-get-started.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=bd346c82af2a1914bd8dfca79653f5c6)

Uma página com as configurações do produto **Login** deve ser aberta.

1. Certifique-se de que a página **Settings** do produto **Login** esteja aberta.
2. Verifique se **Client OAuth** e **Web OAuth** estão ativados.

![Configurações do produto Facebook Login](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-html5/login-product-settings.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=493c1ca8600489493ca47ced5c579204)

### Configurar o SDK do Facebook

Abra seu **Unity Project**:

1. Selecione **Facebook** no menu de arquivos.
2. Em seguida, selecione **Edit Settings**.

![Editar as configurações do projeto Unity do Facebook](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/edit-project-settings.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=fbf61a04fb83b8ada1e829f7918cdc14)

A janela **Inspector** exibirá a configuração atual do **Facebook SDK**.

* Insira seu **Application ID** no campo correspondente, conforme mostrado na imagem a seguir.

![Inserir a ID do aplicativo na configuração do SDK do Facebook](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/enter-app-id.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=46683d51640caa63de8f3c828b2f7adf)

### Script de autenticação simples

Crie um novo **Game Object** e renomeie-o como **PlayfabFacebookAuthExample**, conforme mostrado na imagem a seguir.

![Criar um novo Game Object](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/create-game-object.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=3a19b0150725400f2affedef4c8c0ab8)

1. Crie um script chamado **PlayfabFacebookAuthExample.cs**.
2. Adicione-o ao **Game Object**, conforme mostrado na imagem abaixo.

![Adicionar o script de exemplo ao objeto de jogo](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/add-example-script.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=df63197b8889dcd5fccadabef66e37e0)

Dentro de `PlayfabFacebookAuthExample.cs`, coloque o código a seguir.

```csharp theme={null}
// Import statements introduce all the necessary classes for this example.
using Facebook.Unity;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;
using LoginResult = PlayFab.ClientModels.LoginResult;

public class PlayfabFacebookAuthExample : MonoBehaviour
{
    // holds the latest message to be displayed on the screen
    private string _message;

    public void Start()
    {
        SetMessage("Initializing Facebook..."); // logs the given message and displays it on the screen using OnGUI method

        // This call is required before any other calls to the Facebook API. We pass in the callback to be invoked once initialization is finished
        FB.Init(OnFacebookInitialized);  

    }

    private void OnFacebookInitialized()
    {
        SetMessage("Logging into Facebook...");

        // Once Facebook SDK is initialized, if we are logged in, we log out to demonstrate the entire authentication cycle.
        if (FB.IsLoggedIn)
            FB.LogOut();

        // We invoke basic login procedure and pass in the callback to process the result
        FB.LogInWithReadPermissions(null, OnFacebookLoggedIn);
    }

    private void OnFacebookLoggedIn(ILoginResult result)
    {
        // If result has no errors, it means we have authenticated in Facebook successfully
        if (result == null || string.IsNullOrEmpty(result.Error))
        {
            SetMessage("Facebook Auth Complete! Access Token: " + AccessToken.CurrentAccessToken.TokenString + "\nLogging into PlayFab...");

            /*
             * We proceed with making a call to PlayFab API. We pass in current Facebook AccessToken and let it create
             * and account using CreateAccount flag set to true. We also pass the callback for Success and Failure results
             */
            PlayFabClientAPI.LoginWithFacebook(new LoginWithFacebookRequest { CreateAccount = true, AccessToken = AccessToken.CurrentAccessToken.TokenString},
                OnPlayfabFacebookAuthComplete, OnPlayfabFacebookAuthFailed);
        }
        else
        {
            // If Facebook authentication failed, we stop the cycle with the message
            SetMessage("Facebook Auth Failed: " + result.Error + "\n" + result.RawResult, true);
        }
    }

    // When processing both results, we just set the message, explaining what's going on.
    private void OnPlayfabFacebookAuthComplete(LoginResult result)
    {
        SetMessage("PlayFab Facebook Auth Complete. Session ticket: " + result.SessionTicket);
    }

    private void OnPlayfabFacebookAuthFailed(PlayFabError error)
    {
        SetMessage("PlayFab Facebook Auth Failed: " + error.GenerateErrorReport(), true);
    }

    public void SetMessage(string message, bool error = false)
    {
        _message = message;
        if (error)
            Debug.LogError(_message);
        else
            Debug.Log(_message);
    }

    public void OnGUI()
    {
        var style = new GUIStyle { fontSize = 40, normal = new GUIStyleState { textColor = Color.white }, alignment = TextAnchor.MiddleCenter, wordWrap = true };
        var area = new Rect(0,0,Screen.width,Screen.height);
        GUI.Label(area, _message,style);
    }
}
```

## Testes

### Executar o aplicativo no editor

1. Selecione o botão **Play**. Depois que o **Facebook** for inicializado (e uma chamada de autenticação for feita), uma caixa de diálogo de autenticação do **Facebook** aparecerá na visualização do jogo.
2. Insira o **User Token**.
3. Selecione o botão **Send Success**, conforme mostrado na imagem a seguir.

![Inserir o token de usuário na caixa de diálogo de autenticação do Facebook](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/enter-user-token.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=b3384d650c0264c549d2ef1780c4eb98)

* Verifique a saída do console. Ela deve exibir nossas instruções de depuração, conforme mostrado na imagem abaixo.
* Se você não vir erros, isso significa que a autenticação foi bem-sucedida.

![Saída do console de depuração](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/debug-console-output.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=720db9bf8bc65ead9c9ff196c817a2fe)

### Executar o aplicativo no Android

Antes de iniciar o aplicativo no Android, você precisa executar etapas de configuração adicionais:

* Primeiro, certifique-se de que a plataforma Android esteja selecionada e que o **Package ID** exclusivo esteja definido (conforme indicado no exemplo abaixo).

> [!NOTE]
>
> Certifique-se de criar seu próprio **Package ID** *exclusivo*.

![Definir a ID do pacote Android](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/set-android-package-id.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=e8bdadc7a8f8bf9ef4318a55f2d28338)

> [!TIP]
>
> **Etapa opcional**: instale o [Open SSL](https://wiki.openssl.org/index.php/Binaries) e adicione-o à variável de ambiente **PATH**. Se ele estiver ausente, o Unity produzirá um erro inofensivo durante o build. Esse erro não interrompe o build nem afeta a execução.

Em seguida, no console do seu **Facebook Application**:

1. Navegue até as configurações **Basic**.
2. Selecione **+ Add Platform**, conforme indicado no exemplo fornecido abaixo.

![Console do aplicativo do Facebook: adicionar plataforma](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/facebook-add-platform.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=7ee5741660e7e45cb2a7c81514e1fd1f)

* Em seguida, selecione **Android** na lista de plataformas disponíveis.

![Facebook: selecionar a plataforma Android](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/select-android-platform.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=eac3fadcf67a0ce0c6abc1181dba3781)

Um painel com configurações específicas da plataforma será exibido.

* Preencha seu **Package ID**.
* Selecione **Save** (o botão **Save** fica oculto no canto inferior direito da página).

![Configurações da plataforma Android](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/android-platform-settings.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=b6ffafffedb54020a4a0ad1d51ac078b)

Compile e execute o aplicativo normalmente no seu dispositivo Android.

* O aplicativo deve recebê-lo com uma página de entrada do Facebook.
* Depois de entrar, observe a mensagem na tela à medida que ela muda.
* Por fim, você deverá ver uma mensagem indicando a autenticação bem-sucedida no PlayFab. Todo o procedimento é ilustrado no exemplo fornecido abaixo.

![Autenticação do PlayFab com Facebook no Android](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/playfab-facebook-auth-on-android.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=73ca707fbe085b61bbeaf369702b2386)

### Executar o aplicativo no iOS

Antes de iniciar o aplicativo no iOS, você precisa executar etapas de configuração adicionais.

* Primeiro, certifique-se de que a plataforma **iOS** esteja selecionada.
* Em seguida, defina um **Bundle ID** exclusivo, conforme indicado no exemplo fornecido abaixo.
* Certifique-se de criar seu próprio **Package ID** *exclusivo*.

![Definir a ID do pacote iOS](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/set-ios-bundle-id.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=3599c6de938ed564cc5dc7ae572ea8c8)

Em seguida, no seu **Facebook Application Console**:

1. Navegue até as configurações **Basic**.
2. Selecione **+ Add Platform**, conforme indicado no exemplo fornecido abaixo.

![Console do aplicativo do Facebook: adicionar plataforma](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/facebook-add-platform.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=7ee5741660e7e45cb2a7c81514e1fd1f)

* Selecione **iOS** na lista de plataformas disponíveis.

![Facebook: selecionar a plataforma iOS](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/select-ios-platform.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=396c5464cb9dba1c7da77ec8484bc86e)

Um painel com configurações específicas da plataforma será exibido.

* Preencha seu **Package ID**.
* Selecione o botão **Save** (o botão **Save** fica oculto no canto inferior direito da página).

![Configurações da plataforma iOS](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/ios-platform-settings.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=14c5ccc92e77b857aa2bddf50a6437dd)

* Em seguida, compile o aplicativo como de costume.
* Depois disso, abra o **Project** usando o **XCode**.

![Abrir o projeto iOS usando o XCode](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/open-ios-project.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=8b1b51af9c293e12e99de0f37348575a)

* Selecione o **Project** para abrir **Project Settings**.
* Verifique se o **Bundle ID** corresponde ao seu **Package ID** exclusivo.

![Configurações do projeto iOS: verificar a ID do pacote](https://mintcdn.com/microsoft-4404708b/wQJwYr9vT-FdsCSx/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/ios-project-settings-verify-bundle-id.webp?fit=max\&auto=format\&n=wQJwYr9vT-FdsCSx\&q=85\&s=134ffb82cfab08931fdafae6201a9670)

* Certifique-se de selecionar o dispositivo correto.

![Configurações do projeto iOS: selecionar o dispositivo](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/ios-project-settings-select-device.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=ba4e9bc8666986003c926585554c88e1)

* E selecione o **Identity Team** correto.

![Configurações do projeto iOS: selecionar o Identity Team](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/ios-project-settings-select-identity-team.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=3875ebcc3d1bdd8c50810b9a94c0ed83)

Por fim, execute o aplicativo normalmente.

* Depois de iniciado, o aplicativo permitirá que você faça login no Facebook usando o navegador da Web.
* Depois disso, a autenticação do PlayFab será invocada e uma mensagem indicará o resultado.

![Autenticação do PlayFab com Facebook no iOS](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/playfab-facebook-auth-on-ios.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=9ec6a4d3c32ebcad5452e897f98c211e)

### Verificar pelo Game Manager do PlayFab

Abra seu título do PlayFab no Game Manager.

* Navegue até o painel.
* Consulte o painel **PlayStream Debugger** para verificar os eventos mais recentes. Você deverá ver o evento de autenticação do Facebook, conforme exibido no exemplo a seguir.

![Evento de autenticação do Facebook no PlayStream Debugger](https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/facebook-unity/playfab-facebook-auth-event.png?fit=max\&auto=format\&n=mLCHf0iQv3VidfBe\&q=85\&s=f9d6980c6cef4ca74b9747a5d55d3c45)

Neste ponto, você integrou com êxito a autenticação do Facebook para o PlayFab.


## Related topics

- [Autenticação específica da plataforma](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/index.md)
- [Configurar a autenticação do PlayFab usando Facebook e HTML5](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/facebook-html5.md)
- [Configurar a autenticação do PlayFab usando Kongregate e Unity](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/kongregate-unity.md)
- [Configurar a autenticação do PlayFab usando Steam e Unity](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/steam-unity.md)
- [Configurar a autenticação do PlayFab usando Google e HTML5](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/platform-specific-authentication/google-html5.md)
