我在 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总是返回状态“logged in”呢?
我知道我可以在调用 Javascript FB.login() 或 FB.logout() 后调用 Facebook PHP 登录或注销函数,但我真的必须这样做才能让两个 SDK 一起工作吗?
顺便说一句,无论我在 FB.logout() 中立即通过 AJAX 调用它还是稍后刷新页面后,sync.php 脚本都会返回“登录”。
谢谢你的帮助。