Javascript SDK で FB.logout() および FB.login() 関数を呼び出しています。
いずれの場合も、AJAX 経由で PHP の「同期」スクリプトを呼び出して、サーバーの状態を最新の状態に保ちたいと考えています。例えば:
FB.init({
appId:'XXXXXXXXXXXXX',
cookie: true,
status : true,
xfbml:true
});
FB.logout(function(response) {
$.ajax({
type: "POST",
url: "http://mysite.com/sync.php",
cache: false
...
});
}
次に、sync.php スクリプトで:
$user = $this->api->getUser();
if ($user) {
try {
$me = $this->api->api('/me');
}
catch (FacebookApiException $e){
error_log($e);
$user = false;
}
}
if ($user)
echo json_encode(array("status" => "logged in"), JSON_FORCE_OBJECT);
else
echo json_encode(array("status" => "logged out"), JSON_FORCE_OBJECT);
では、FB.logout を呼び出した後、sync.php が常に「ログイン済み」というステータスを返すのはなぜですか?
Javascript FB.login() または FB.logout() を呼び出した後、Facebook PHP のログインまたはログアウト関数を呼び出すことができることはわかっていますが、両方の SDK を連携させるために、実際にそれを行う必要がありますか?
ちなみに、sync.php スクリプトは、FB.logout() 内ですぐに AJAX 経由で呼び出すか、後でページを更新した後に呼び出すかに関係なく、「ログイン済み」を返します。
助けてくれてありがとう。