2011-09-10 2 views
1

私は最近Facebookのサポートを私が取り組んでいるiPhoneアプリケーションに統合しました。ユーザーをログインさせてAPI呼び出しをうまく行えるようになりましたが、最近私はいくつかの奇妙な動作に気付きました。Facebook iOS SDK:Facebookからデスクトップからログアウトした後にセッションが無効になった

ユーザーがログインすると、NSUserDefaultsにアクセストークンと有効期限が保存されます。 Facebook API呼び出しを実行する前に、私は[session isSessionValid]を使ってセッションが有効であることを確認します。

ユーザーは、デスクトップからFacebookにログインしてからログアウトすると問題が発生します。 [session isSessionValid]は引き続きYESを返しますが、Facebook API呼び出しはエラーで失敗します。

"アクセストークンの検証でエラーが発生しました:ユーザーがログアウトしたか、システムエラーが原因である可能性があります。

私が間違っていることはありますか、これはFacebookのバグですか?

答えて

6

NSUserDefaultsにアクセストークンと有効期限を保存しても、ユーザーが毎回アプリを入力するときにアクセストークンを検証する必要があります。たとえば、ユーザーがパスワードを変更したときなどにoffline_accessアクセスアクセストークンが無効になることもあります。

アプリを起動するときにグラフAPI「me」を呼び出すだけで済みます。例外が発生した場合は、単に再認証が必要な場合は、APIコールの定期的なワークフローを続行します。これはこれで結構です

+0

を助け

希望、私はその後、再認証、アクセストークン例外を受信したときにも、ディスクからのアクセストークン情報をログアウトして削除する必要があることまで追加したいと思います。 – Lio

+0

ありがとうございます。エラーを再承認するコードを追加しました。正常に動作しているようです。 – cprogrammer

関連する問題