2

私は FB Unity SDK を使用していますが、常に直面している問題の 1 つは、FB.Init() が既に呼び出されているかどうかを確認することです。

シナリオ:

  1. fb接続ボタンがあり、ユーザーはそれをクリックします。
  2. ユーザーがダイアログをキャンセルして [Fb connect again] をクリックした場合

FB SDK は、「FB.Init() は既に呼び出されています。これは 1 回だけ呼び出す必要があります。」という通知をスローします。

これが私がやろうとしていることですが、うまくいきません

    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 であることを期待していましたか?

また、これらのメッセージはアプリの提出に影響しますか? 製品ビルドで表示されますか?

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 に答える