3

ユーザーが設定で有効にできるオプションのFacebook ログインを備えた iPhone アプリがあります。

(「独自の」スイッチ変数を使用してアプリのストレージに保存することなく)、ユーザーが過去にそれをアクティブにしているかどうかを知る方法がわかりません。スイッチでステータスを表示します。

FBSession.activeSession.state は信頼できる値を提供しません。これは、トークンの有効期限が切れている場合、セッションはアプリに対して「有効」でも、Facebook に対しては無効である可能性があるためです。

これに依存して、トークンの有効期限が切れたときに (おそらく数時間後?)、Facebook アプリまたは Safari に切り替えて新しい認証要求をユーザーに要求せずに、トークンを更新する方法を理解できません。基本的には、トークンが有効になるまで保持して使用し、有効期限が切れているために Facebook がリクエストを拒否したらすぐにトークンを更新したいと考えています。

前もって感謝します!

4

1 に答える 1

2

次の例の呼び出しを行うことができます。

BOOL openedWithCachedToken = [FBSession openActiveSessionWithAllowLoginUI:NO];

キャッシュされたトークンがない場合、これはユーザーにログイン UI を表示しません。

参照: https://developers.facebook.com/docs/reference/ios/3.1/class/FBSession#openActiveSessionWithAllowLoginUI%3A

キャッシュされたトークン (openedWithCachedToken が true) を取得したら、要求 (requestForMe など) を作成して、セッションが Facebook で有効であることを検証できます。Facebook SDK は、必要に応じて、セッションを更新するために、ピギー バック リクエストを送信します。とにかく、独自のリクエスト完了ハンドラーをチェックして、無効なサーバー セッションである可能性がある失敗シナリオを実行できます。

于 2012-09-27T00:55:24.917 に答える