首页 文章

Unity Facebook SDK不保存以前的登录会话

提问于
浏览
3

我正在使用官方Unity Facebook SDK在我的游戏中开发“使用Facebook登录”支持 . 实际上我使用的是测试版6.1(但这个问题也出现在稳定版6.0中) .

用户可以成功登录,然后我可以发出FB api请求 . 问题是FB SDK没有保存会话,因为当您关闭应用程序并再次启动它时, FB.IsLoggedIn 值为 false .

它不适用于任何平台:编辑器,iOS和Android .

Note: Facebook设置中的 Status 属性已经过检查 .

这是我实现它的方式:

FacebookController.cs

void Awake()
{
    if (instance == null)
    {
        DontDestroyOnLoad(gameObject);
        instance = this;

        FB.Init(OnFacebookInit);
    } else if (instance != this)
    {
        Destroy(gameObject);
    }
}

void OnFacebookInit()
{
    if (FB.IsLoggedIn)
    {
        FBIsLoggedIn();
    }
}

public void LoginWithFacebook(OnUserAuthenticated _userAuthCallback)
{
    userAuthCallback = _userAuthCallback;
    FB.Login("email, user_friends", AuthCallback);
}

void AuthCallback(FBResult result)
{
    if (FB.IsLoggedIn)
    {
        FBIsLoggedIn();
    } else
    {
        Debug.Log("User cancelled login");
    }
}

void FBIsLoggedIn()
{
    FB.API("me", Facebook.HttpMethod.GET, UserCallBack);
    FB.API("me/friends", Facebook.HttpMethod.GET, FriendsCallback);
}

我是否需要添加一些代码才能使FB保存有效会话?

提前致谢!

2 回答

  • 0

    我的问题是我希望facebook能够在编辑器上保存会话,而不是 .

    将其构建到设备中时,FB SDK会成功记住上一个有效会话 . 在我的例子中,我的错误是我没有向用户界面提供反馈 . FB.IsLoggedIn 返回true,但我通过更改 UserCallBack 方法中FB登录按钮的状态解决了这个问题 .

    希望它能帮到你!

  • 1

    我的登录系统遇到同样的问题 . 但是当我点击“使用Facebook登录”时,我解决了调用相同功能的问题 . 然后我在Unity Editor的字典中保存了一个变量,知道这是一个Facebook登录:

    PlayerPrefs.SetString("ISFACEBOOK", true);
    

    最后,我在FB.Init()中添加了一个小支票,以检查编辑器是否有该键 .

    private void InitCallback(){if(FB.IsInitialized){FB.ActivateApp(); Debug.Log(“[Initcallback] activateApp”);

    if (true == PlayerPrefs.HasKey("ISFACEBOOK") {
                //normal login
                FacebookLoginButton();
            }
        } 
        else 
        {
            SetMessage("Failed to Initialize the Facebook SDK");
        }
    

    如果用户注销,我从编辑器中删除该变量 .

    我知道这是一种解决问题的廉价方法,但Facebbok API需要调用FB.LogInWithPublishPermissions或FB.LogInWithReadPermissions .

    希望这对你有所帮助 .

相关问题