Facebook团结SDK," FB.Init()已被称为"

时间:2013-10-21 07:34:49

标签: facebook unity3d facebook-unity-sdk

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

情景:

  1. 有一个fb连接按钮,用户点击它。
  2. 如果用户决定取消该对话框并单击"再次连接Fb"
  3. 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为null?

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

1 个答案:

答案 0 :(得分:3)

不应多次调用FB.Init()。这是设计的(因为它介于Facebook GameObjects等Unity中)。相反,这样做:

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       
    }
}