无法使用Cakephp获取Facebook用户详细信息

时间:2013-04-16 10:45:27

标签: php cakephp facebook-php-sdk

我正在尝试将facebook连接webtechnick插件与我的Cakephp应用程序集成。 我的登录和注销工作正常,但我无法获取facebook用户详细信息,如username,userid,firstname,lastname等。

这是我在Appcontroller中的代码:

public $components = array(
            'Session','Facebook.Connect'=>array('model' => 'User'));

public function beforeFilter() {

$this->set('facebook_user', $this->Connect->user());

 }

当我在我的观点中尝试此操作时<?php echo debug($facebook_user);?> 我得到空值

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

当您致电$this->Connect->user()致电FB->api('/me')时,您的用户可能已退出。根据您在/Config/core.php&amp;中设置的调试级别。使用php.ini设置html_errors = On,如果是这种情况,你应该抛出异常&amp;会解释为什么你得到一个空洞的回应。

个人,我在AppController.php中使用:

public function beforeFilter(){
    if($this->Connect->FB->getUser() != 0){
        $this->set('facebookUser', $this->Connect->user());
    }
}

这样,如果我没有访问非通用详细信息(id,name,bio等)的访问令牌,它就不会尝试调用api。对于FB-&gt; getUser()回答为0意味着用户未授予对此应用的数据的访问权限,因此不允许user_token调用api(/me)

无论如何,你应该尝试从控制器内部调试问题,尝试在beforeFilter()的末尾添加var_dump($this->Connect->uid, $this->Connect->me);,看看你得到了什么。