Unity Android首次尝试后无法登录Facebook

时间:2017-05-15 18:08:58

标签: c# facebook unity3d

我让facebook在Android上使用android工作但是在我第一次登录之后它就不再工作了。我认为这是因为我没有注销,但我不知道它为什么不能保持登录状态,因此我可以使用API​​。这是我的代码:

public class FacebookLogin : MonoBehaviour {


void Awake()
{
    if (!FB.IsInitialized)
    {
        FB.Init(InitCallback, OnHideUnity);
    }
    else
    {
        FB.ActivateApp();
    }
}

private void InitCallback()
{
    if (FB.IsInitialized)
    {
        FB.ActivateApp();
    }
    else
    {
        Debug.Log("Failed to Initialize the Facebook SDK");
    }
}

private void OnHideUnity(bool isGameShown)
{
    if (!isGameShown)
    {
        Time.timeScale = 0;
    }
    else
    {
        Time.timeScale = 1;
    }
}

public void FBLogin()
{
    List<string> perms = new List<string>() { "public_profile", "email", "user_friends" };
    FB.LogInWithReadPermissions(perms, AuthCallback);
}

private void AuthCallback(ILoginResult result)
{
    if (FB.IsLoggedIn)
    {
        var aToken = Facebook.Unity.AccessToken.CurrentAccessToken;

        FB.API("/me?fields=first_name", HttpMethod.GET, getName);
        FB.API("/me/picture?type=square&height=128&width=128", HttpMethod.GET, getProfilePic);
        SceneManager.LoadScene("Main_Menu");
    }
    else
    {
        Debug.Log("User cancelled login");
    }
}

private void getName(IResult result)
{
    LocalDataBase.Name = result.ResultDictionary["first_name"].ToString();
}

private void getProfilePic(IGraphResult result)
{
    LocalDataBase.profilePicture = result;
}

}

有人可以向我解释如何保存登录令牌或自动保存?

1 个答案:

答案 0 :(得分:1)

无需保存FB令牌。无论何时你想使用它,你都可以从这些代码行中获得它:

string token = null;
if (FB.IsLoggedIn)
{
    token = Facebook.Unity.AccessToken.CurrentAccessToken;
}
//... use the token here onwards...