私はiOSゲームのいずれかでiOS Facebookログインプロセス全体を実装しました。 アプリでは、電子メールアカウントまたはFacebookを使用してログインできます。私は時折、ユーザーが電子メールでログインした場合、彼のアカウントをFacebookと同期させるためのビューを表示します。ここでFBSession.activeSession.isOpenは、ユーザーがログインしてもNOを返します
は私がユーザーに、このビューを表示する必要がありwheitherかを決定するために使用しているコードです:
if (FBSession.activeSession.isOpen) {
// Present the view
} else {
// Go somewhere else
}
最初は素晴らしい仕事に見えたが、それはそのFBSession.activeSession.isOpenが判明しますユーザーがFBでログインしていても、ある時点でNOを返します。
私の最初の推測は、accessTokenの有効期限が切れることです。私は自分のアプリケーションで次のようにやっているので、それが良い手掛かりかどうかわからない:didFinishLaunchingWithOptions:メソッド(Facebookがすることをお勧めしますように):
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// Yes, so just open the session (this won't display any UX).
[self openSessionWithCompletionBlock:^{}];
}
は、だから今、私はこの問題を再現するか、修正方法が分かりません、 何か案が?アプリの起動後にトークンが期限切れになる可能性はありますか?ユーザーが静かな長い時間のためにバックグラウンドでアプリを保持している場合のように?
私も同じ問題に直面していますが、私の場合は、再びアプリケーションを起動するとセッションがなくなります。私も新しいセッションを作成して開こうとしましたが、動作していませんでした。 – ViruMax
私の問題を完璧に解決しました! iOSのFacebookSDKでは 'checkSessionState:state'の' FBState'が 'FBSessionState'に変更されました。 SDKのバージョン番号が見つかりませんでした。現在の実際のバージョンは3.13です。 – jerik