5

最新のFacebookiOSSDK、3.1.1を使用しています。Facebookからアプリを「切断」するオプションをユーザーに提供したいと思います。私が呼んでいるのは:

[[FBSession activeSession] closeAndClearTokenInformation];

それはうまくいくようですが、次に電話するとき

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler];

ユーザーに再度ログインするように要求することなく、すぐにトークンを取得します。もう一度ユーザーに認証を依頼することを期待しています。デバイスにFacebookアカウントが設定されていない場合は、Webブラウザーが開き、ユーザーにアプリが既に認証されていることを通知し、[OK]ボタンが表示されるため、正常に機能します。ただし、設定されている場合は、トークンが再度サイレントに取得されるため、ユーザーがアプリを「切断」しても効果はありません。

他の誰かがこの問題を抱えていますか、そしてあなたはそれをどのように扱っていますか?

4

2 に答える 2

2

iOS SDK が Facebook SDK に有効なアクセス トークンを与えているため、再度要求することはありません。これはまさに、Apple が Facebook (および Twitter) フレームワークを設計した方法です。それについてあなたができることは何もありません。個人的には素晴らしいと思います。ユーザーは、アプリを受け入れることを電話に 1 回だけ伝える必要があります。

また、キャッシュされたトークンの有効期限が切れている可能性があることにも注意してください。現在、Facebook SDK は、iOS SDK が期限切れのトークンを与えるケースを完全に処理していません。

テストしたい場合は、デバイスの Facebook アカウントを削除して、再度追加できます。これにより、キャッシュされたトークンがクリアされます。

于 2012-12-05T10:16:37.320 に答える
0

使用:

- (void)openWithBehavior:(FBSessionLoginBehavior)behavior completionHandler:(FBSessionStateHandler)handler;

動作としてFBSessionLoginBehaviorForcingWebViewを使用すると、問題が解決しました。ログインモーダルボックスを開き、ユーザーの Cookie を忘れます。

于 2013-05-18T21:05:07.373 に答える