1

我在 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 脚本都会返回“登录”。

谢谢你的帮助。

4

0 回答 0