Facebook единый маркер доступа к базе данных

Так что мое приложение единства несколько работает. что моя проблема сейчас заключается в следующем: экран, который появляется, когда я нажимаю кнопку входа с помощью Facebook в моем скрипте

это стандарт при тестировании в среде редактора Unity?

кроме того, я заметил, что экран запрашивает токен доступа. что я действительно хочу сделать, так это получить доступ к этому токену и передать его в метод аутентификации firebase для Facebook. я могу сохранить его, как у меня в функции authCallBack? если это так, могу ли я просто передать созданные учетные данные в метод accessToken, который вызывает задачу аутентификации, или я, конечно, полностью? Любая помощь будет оценена

Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Facebook.Unity;
using Firebase.Auth;

public class FacebookHandler : MonoBehaviour {

// Use this for initialization
private void Awake()
{
    FB.Init(setInit, onHideUnity);
}

void setInit()
{
    if (FB.IsLoggedIn)
    {
        Debug.Log("fb is logged in");
    }
    else
        Debug.Log("fb is not logged in");
}

//for whether the game is open or not
void onHideUnity(bool isGameShown)
{
    if (!isGameShown)
    {
        Time.timeScale = 0;
    }
    else
        Time.timeScale = 1;
}

public void fbLogin()
{
    List<string> permissions = new List<string>();

    //asks facebook for the users profile
    permissions.Add("public_profile");
    permissions.Add("email");
    permissions.Add("user_friends");

    FB.LogInWithReadPermissions(permissions, authCallBack);
}

void authCallBack(IResult result)
{
    if (result.Error != null)
    {
        Debug.Log(result.Error);

    }
    else
    {
        if (FB.IsLoggedIn)
        {
            Debug.Log("logged in");
            AccessToken token = AccessToken.CurrentAccessToken;
            Credential credential = FacebookAuthProvider.GetCredential(token.TokenString);
            accessToken(credential);
        }

        else
            Debug.Log("not logged in");
    }
}

public void accessToken(Credential firebaseResult)
{
    FirebaseAuth auth = FirebaseAuth.DefaultInstance;

    if (FB.IsLoggedIn)
        return;

    auth.SignInWithCredentialAsync(firebaseResult).ContinueWith(task =>
    {
        if (task.IsCanceled)
        {
            Debug.LogError("SignInWithCredentialAsync was canceled.");
            return;
        }
        if (task.IsFaulted)
        {
            Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
            return;
        }

        FirebaseUser newUser = task.Result;
        Debug.LogFormat("User signed in successfully: {0} ({1})",
            newUser.DisplayName, newUser.UserId);
    });
}

}

1 ответ


Да, это стандартный экран тестирования. Вы можете получить тестовый токен на своей странице разработчика в Facebook (Роли-> Тестовый пользователь-> Нажмите на кнопку Изменить-> Получить токен доступа для этого пользователя). Подобный токен генерируется каждый раз, когда ваше приложение подключается к вашему приложению Facebook. Обычно это недолговечный токен, около 2 часов, поэтому вам не нужно его сохранять.

Другие вопросы по тегам