0

我正在尝试将 facebook connect webtechnick 插件与我的 Cakephp 应用程序集成。我的登录和注销工作正常,但我无法获取 Facebook 用户详细信息,如用户名、用户 ID、名字、姓氏等。

这是我在 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);?> 得到了空值

我该如何解决这个问题

4

1 回答 1

0

$this->Connect->user()当您拨打电话时,您的用户可能已注销FB->api('/me')。根据您在 /Config/core.php 和 php.ini 设置中设置的调试级别html_errors = On,如果是这种情况,您应该会抛出异常,并且会解释为什么您会收到空响应。

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

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

这样,如果我没有授予对非通用详细信息(id、名称、生物等)访问权限的访问令牌,它不会尝试调用 api。FB->getUser() 答案为 0 意味着用户没有授予此应用程序对其数据的访问权限,因此不允许 user_token 调用api(/me).

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

于 2013-05-04T13:52:20.247 回答