Cakephp Facebook OAuth致命错误:未捕获OAuthException:活动访问令牌

Cakephp Facebook OAuth致命错误:未捕获OAuthException:活动访问令牌,cakephp,facebook,facebook-graph-api,Cakephp,Facebook,Facebook Graph Api,当我尝试使用Facebook Connect时出现此错误 Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in /home/bakasura/public_html/ginger/app/vendors/facebook/facebook.php on line 543 Facebook行动

当我尝试使用Facebook Connect时出现此错误

Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in /home/bakasura/public_html/ginger/app/vendors/facebook/facebook.php on line 543
Facebook行动

function facebook($authorize = null) {
    App::import('Vendor', 'facebook');

$facebook = new Facebook(array(
                        'appId'=> $this->__fbAppId,
                        'secret'=> $this->__fbSecret,
                        'cookie'=>true
                        ));

$session = $facebook->getSession();

if(!empty($session) && ($authorize == null)){
    $login_url = $facebook->getLoginUrl(array(
                            'next' => Router::url(array('action' => 'facebook', 'authorize'), true),
                            'cancel_url' => Router::url(array('action' => 'login'), true),
                            'req_perms' => 'email,publish_stream',
                 ));

    header("Location:".$login_url);
}

$userInfo = $facebook->api('/me');

if(!$userInfo){
    $this->Session->setFlash('Facebook login failed');
    $this->redirect(array('action' => 'login'));
}


$user = array(
    'User' => array(
        'first_name'       => $userInfo['first_name'],
        'last_name'        => $userInfo['last_name'],
        'username'        => $userInfo['username'],
        'email'           => $userInfo['email'],
        'user_group_id'   => 1,
        'status' => 'active'
    ),
    'Oauth' => array(
        'provider'        => 'facebook',
        'provider_uid'    => $userInfo['id']
    )
);

$this->oauthLogin($user);        
}

如果未设置会话,则需要重定向到身份验证页面。我是这样做的

    if(!empty($session) && ($authorize == null)){ 
    //blablabla
    }
     else {
echo "<script type='text/javascript'>top.location.href = '".$this->_facebook->getLoginUrl(array('req_perms' => 'email,read_stream,publish_stream'))."';</script>";      
    }
如果(!empty($session)&($authorize==null)){
//喋喋不休
}
否则{
echo“top.location.href=”$this->\u facebook->getLoginUrl(数组('req\u perms'=>'电子邮件、阅读流、发布流))。“;”;
}

确实是在添加它。一秒钟就要结束了,我很困惑。你的意思是,当会话未创建时,我需要再次将其重定向到facebook登录?调用getSession方法后,必须检查会话是否已设置,如果未设置,则重定向到facebook登录。我只是将if语句更改为使用OR而不是and。它也做同样的工作:)非常感谢