私のアプリは、たとえばユーザーの facebook から読み取る必要がある場合、アクティブな FBSession の現在の状態をチェックします。たとえば の場合はFBSessionStateOpen
、Facebook から情報を要求するだけでよいことがわかっていますが、 のFBSessionStateCreatedTokenLoaded
場合は を呼び出さなければなりませんopenWithCompletionHandler
。現在の状態が の場合、どのFBSession
メソッドを呼び出す必要がありFBSessionStateClosedLoginFailed
ますか?
2 に答える
これは、ログイン試行が失敗したことを意味します。これが発生し- closeAndClearTokenInformation
た場合、ログインに失敗したことをユーザーに警告し、再度ログインするかどうかを尋ねます。
要するに: Facebook のサンプル https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/
このような状況が発生すると、サンプル コードは loginViewController または同等の関数を呼び出します。
これは、この状態に陥ったときの彼らのコメントです。"トークンが無効になった場合は、すぐにログイン ビューに戻りたいと考えていますが、これとログイン ビューの競合が少し前に消えることを考慮して、少し遅らせて"
PS Facebook のオープン グラフのセットアップを解決する際にこのエラーを修正し、「return [FBSession.activeSession handleOpenURL:url];」などの素晴らしい例を詳しく調べました。および「[FBSession.activeSession handleDidBecomeActive];」
長い: これは、公式の FB doc から取得されます。 http://developers.facebook.com/docs/reference/ios/3.1/class/FBSession#FBSessionState+enum
これが前提条件であり、接続エラーではなく、他の列挙型状態を渡した場合:
問題を明確に述べていませんでした。キャッシュされた誤った情報である可能性があります。個人的に最も慎重に、「- (void)closeAndClearTokenInformation;」を呼び出します。このメソッドは、すべてのキャッシュ情報をクリーンアップし、「無効なログインです。もう一度お試しください」などのエラー メッセージをクライアント/ユーザーに表示します。
次に、クライアントが白紙の状態でログインを再度実行するか、可能であればこのプロセスをスキップするかを選択できるようにします。
HTH