1

確定,所以設法解決這個問題,雖然我不能肯定地說什麼的原因是,我有足夠近重新編寫初始化,登錄,和我們的Facebook的權限檢查部位連接類。我看不出從我們用於示例的流程有什麼明顯的區別,但顯然有些東西。在任何情況下,在init上自動登錄現在似乎工作得很好。Facebook的統一自動登錄

使用Facebook的插件統一4.3.6版本。注意到目前有點煩人的缺陷。

一旦用戶已經登錄並接受我們的權限,遊戲就會繼續並按照需要進行發佈。但是,如果遊戲關閉然後重新啓動,用戶必須重新登錄。

現在讓我清楚這裏,我們目前沒有調用日誌功能,當我們再次啓動了,爲什麼呢?因爲這會導致瞬間的應用切換,看起來很可怕並且震動。工具提示似乎表明Init應嘗試使用有效的會話數據重新啓動。但是,在調用該init函數之前和之後,Access令牌似乎是空白的。所以沒有自動登錄發生。

我已經嘗試在設置對象和init通過代碼中將狀態標誌設置爲true。這兩者似乎都沒有區別。

有什麼我失蹤讓這個工作?

這個官方插件是否有一種方式可以在沒有應用程序交換的情況下自動登錄?還是我只是追逐夢想?

編輯:
只是提供一些這方面的額外信息。目前在安裝了facebook的iPhone5和iPad3上進行測試,其中一個使用通過iOS設置登錄的Facebook賬戶,兩者都遵循相同的行爲,在init上沒有會話恢復,並且在init之後登錄導致應用程序交換。我將在今天晚些時候嘗試使用facebook例子測試一個空白項目,看看這是我們搞砸了還是它的插件。

+0

什麼平臺,你看到這個? – benp

+0

主要在iOS上,也可能是android,但我現在無法確認。 –

回答

1

我知道你已經解決了你的問題,但我認爲這可能爲別人,因爲我是遇到類似問題,是有用的。

FacebookSettings> FB.Init()參數>狀態應設置爲 「真」。狀態屬性的參考文檔說:

如果爲true,則嘗試使用有效會話數據初始化Facebook對象。

  • 注意:這通常需要異步讀取操作,並且任何依賴於它的完成的代碼都應該在傳遞給Init()的HideUnityDelegate中進行同步。

也許是在文檔中一個錯誤,但我不認爲HideUnityDelegateInit()實際使用(團結就是沒有隱藏調用初始化時)。但是,使用InitDelegate,所以您可以將您的登錄代碼放在那裏。

例子:

void Start() { 
    FB.Init(OnInitComplete, OnHideUnity, null); 
} 

void OnInitComplete() { 
    if (FB.IsLoggedIn) { 
     Debug.Log("FB Logged in during Init"); 
    } 
    else { 
     Debug.Log("FB NOT Logged in during Init"); 
    } 
} 

void OnHideUnity(bool unityIsHidden) { 
} 
+0

它曾經像這樣工作,但不再使用最新版本的FB SDK –

1

打電話給你傳遞給FB的OnInitComplete方法時,原來。Init方法,變量FB.IsLoggedIn尚未設置。在我添加0.5延遲後,它現在可以正確地找到記錄的用戶。不知道爲什麼它像那個在較新的版本,但它適用於我:)