Facebook unity SDK, "FB.Init() has already been called"



我正在使用FB Unity SDK,我面临的一个持续问题是检查FB是否。Init() 已经被调用了。

场景:

  1. 有一个fb连接按钮,用户点击它。
  2. 如果用户决定取消对话框并单击"Fb 再次连接"

FB sdk 抛出一条通知,上面写着"FB.Init() 已经被调用了。你只需要调用一次。

这是我正在尝试做的事情,但不起作用

    if(FB.AccessToken=="" || FB.AccessToken==null){
        Debug.Log ("Fb not init(), call it");
        FB.Init(OnInitComplete, null);
    }else{
        Debug.Log ("Facebook already init()");
        OnInitComplete();           
    }

但是,显然这是自FB以来不起作用的。调用了 Init(),用户取消了它。如何验证FB。Init() 已经被调用了?但是我期望访问令牌为空?

而且,这些消息是否会影响应用程序的提交?它们会显示在生产版本中吗?

FB.Init() 不应该被多次调用。 这是设计使然(因为它在 Unity 中引入了 Facebook GameObjects 等)。 相反,请执行此操作:

FB.Init(MyOnInitComplete);
....
public void MyOnInitComplete() {
    // FB.IsLoggedIn checks for the FB.AccessToken and the FB.UserId
    if(!FB.IsLoggedIn){
        // FB.Init() is called, but user is still not logged in.
        FB.Login("<your_permissions_here>");
    } else {
        // User is logged in & FB.Init is called       
    }
}

相关内容

最新更新