1

私はphp sdkを使用してFacebookアプリに取り組んでいます。ユーザーがアプリにログインした後、ユーザーが新しいブラウザタブからFacebookからログアウトした後、アプリでのアクションは、ユーザーがログアウトしたことを示すログインページにリダイレクトされる必要があります。 . しかし、私の場合、彼がログアウトしていても、私のアプリはまだ機能しています。

注:
アプリ ページでログアウト URL を使用していません。を呼び出してセッションを直接破棄することはでき$facebook->destroySession()ますが、ユーザーが Facebook からいつログアウトするか (新しいブラウザー タブで開く) がわからないため、条件付きでそれを行う方法がわかりません。

4

2 に答える 2

0

アプリがiframeで実行されているときに、Facebookからログアウトすると、別のタブで、Facebookから提供されるモーダルダイアログ「ログインして続行」が表示されます。(クロームを使用)

同じアプリがFacebookの外部(iframeなし)の別のタブで実行されていて、Facebookからログアウトすると、アプリはFacebookセッションが終了したことを検出します。

これは、有効なFacebookユーザーがいるかどうかをすべてのページの読み込みでチェックするためです;-)

私の推測では、ユーザーがログインしている場合は、ページの読み込みごとにチェックするわけではありません。

(または、タブなどの間でCookieを共有しない面白いブラウザがあります)

于 2012-12-29T17:47:22.840 に答える
0

私はまったく同じ問題を抱えています。ユーザーが PHP SDK を使用してログインしているかどうかを検出する方法が見つかりませんでした。しかし、JS SDK を組み合わせると、セッションを検出して Cookie を正しく設定できます。次に、PHP SDK を使用して Cookie/セッションを選択します。

私のソリューションを使用する場合は注意してください。JS と PHP SDK を組み合わせて使用​​すると、AccessToken の永続性が失われるようです。私が抱えている問題は、次のエラーが発生することです: OAuthException: 現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。

読んだ後、これは SDK のプル 48 で修正されたものの、 https ://github.com/facebook/facebook-php-sdk/pull/48 であることがわかりました。

それは部分的に役立ちましたが、今では次のエラーが発生します: OAuthException: アクセストークンの検証中にエラーが発生しました: UNIX 時間でセッションが期限切れになりました

概要: コンボ SDK は問題を解決するために機能しているように見えますが、API は明らかにバグのある動作をします。私は研究を続けており、解決策が得られたら投稿します。

この問題を解決するために他の人が何をしたかを聞くのを楽しみにしています

于 2013-01-20T05:14:29.357 に答える