Facebook PHP API:$Facebook->API('/me')始终返回信息

Facebook PHP API:$Facebook->API('/me')始终返回信息,facebook,api,Facebook,Api,出于某种原因,当我检查用户是否登录Facebook时,我在$Facebook->api'/me'上调用了一个api;要检查用户从Facebook注销时访问令牌是否无效,我可以在另一个选项卡中查看用户信息,即使我从Facebook页面注销,我也无法确定用户是否从Facebook注销 public function __construct() { $facebook = new Facebook(array( 'appId' => $this->_fbappid

出于某种原因,当我检查用户是否登录Facebook时,我在$Facebook->api'/me'上调用了一个api;要检查用户从Facebook注销时访问令牌是否无效,我可以在另一个选项卡中查看用户信息,即使我从Facebook页面注销,我也无法确定用户是否从Facebook注销

public function __construct() {
    $facebook = new Facebook(array(
        'appId'  => $this->_fbappid,
        'secret' => $this->_fbappsecret,
        'cookie' => true,
    ));
    $this->_facebook = $facebook;
}

public function checkFacebookLogin() {
    try {
        $user = $this->_facebook->getUser();
        $user_profile = $this->_facebook->api('/me','GET');
        return true;
    } catch(FacebookApiException $e) {
        return null;
   }
}


有人能帮我吗?

您可能希望在检查用户之前清除持久数据

facebook->clearAllPersistentData()
如果要检查状态,应使用以下方法将用户重定向到登录_status.php:

facebook->getLoginStatusUrl($params)
获取登录状态URL以从Facebook获取状态

参数:

确定会话:如果找到会话,则要转到的URL 无会话:如果用户未连接,则要转到的URL no_user:如果用户未登录facebook,则指向的URL
好的,使用facebook->clearAllPersistentData可以工作,但只在登录按钮后的页面中。如果我访问其他页面,然后返回应用程序页面,如果清除所有持久数据,它会再次返回登录按钮:这不是很好。我不能使用第二个解决方案,因为我只有一个带有facebook应用程序的php页面,所以我不能使用其他URL。但是我不明白为什么API会返回用户信息!在调用getUser后进行api调用如果用户注销,是否不应该说令牌无效?为什么Api不能捕获异常?