0

現在のプロジェクトでapi('/me','GET')は、現在ログインしているユーザーのユーザー データを取得するために使用しています。プロジェクトを Facebook ユーザーに同期するオプションがあります。同期を無効にすることもできます。問題は、Facebook をログアウトして Facebook ユーザーを変更し、再度同期しても、以前のユーザー データが返されることです。

コードのスニペットを次に示します。

$user_profile = $facebook->api('/me','GET');

$fname = $user_profile["first_name"];

$fname同期したFacebookユーザーの名を表示するために使用しています。シナリオは次のとおりです。

*私のプロジェクトは Facebook ユーザーと同期されるようになりました。その後、Facebook をログアウトし、プロジェクトを再同期します。それでも、以前に使用していたユーザーの名前が表示されます。

以前のユーザーのユーザー データを保持する理由が理解できないようです。新しい Facebook ユーザーと同期するのは、Web サイト プロジェクトをログアウトして再ログインするときだけです。ところで、私はPHP SDKを使用しています。

4

1 に答える 1

1

それはおそらく、access_tokenがまだ有効だからです。トークンは通常、Cookie 内に保持されるため、ユーザーが Facebook からログアウトしても、この Cookie は引き続き使用可能であり、トークンは、Facebook にログインまたはログアウトしているユーザーにリンクされているのではなく、アプリケーションに関連付けられるまで有効なままです。有効期限が切れます。

そのため、Cookie を手動で削除して、ユーザーのログアウト後にアプリがアクセスできないようにすることができます。DELETEまたは、「/me/permissions」にリクエストを送信してアクセス トークンを無効にすることもできます。

100% 確信はありませんが、JS SDK を使用する場合、このプロセスは自動的に行われます。

于 2013-03-01T04:54:09.213 に答える