1

Android アプリに Facebook SDK 3.0 を統合しています。

ユーザーが Android デバイスでセッションを開いたとします。デフォルトのトークン戦略を使用する場合、トークンは SharedPreferences に保持されます。

次に、ユーザーは Web または Facebook アプリでトークンを取り消します。

次に、新しいセッションを作成してアクティブに設定したとします (これが UiLifecycleHelper であり、アクティブなセッションがありません。

次に、次の方法でセッションを開きます。

Session.openActiveSession(this, true, mCallback);

https://developers.facebook.com/docs/reference/android/current/Session#openActiveSessionFromCache(Context)によると

新しいセッションを作成し、トークン キャッシュが利用可能な場合は、セッションを開いて、ユーザーの操作なしでアクティブにします。

というわけで、この流れで、実際に取り消されたトークンでSessionを開きます…

これは本当ですか?何か不足していますか?どうすればこれを治療できますか?別の新しいセッションを開こうとすると、同じ無効なトークンが再び使用されます...

4

1 に答える 1

0

次の方法でトークンをクリアできることに気付きました。

Session#closeAndClearTokenInformation();

したがって、開発者に期待されているのは、Session.openActiveSession() でセッションを開くことです。SharedPreferences にキャッシュされたトークンがあり、それが機能する場合は完璧です。トークンが取り消された場合、Facebook API を呼び出したときに認証エラーを受け取るまで、それはわかりません。これが発生した場合は、トークンをクリアして再度認証します。

于 2013-07-19T15:18:32.587 に答える