2

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

设想:

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

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() 是否已被调用?但我期待 accessToken 为空?

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

4

1 回答 1

3

FB.Init() 不应多次调用。这是设计使然(因为它在 Unity 中初始化 Facebook 游戏对象等)。相反,请执行以下操作:

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       
    }
}
于 2013-10-21T18:12:27.087 回答