我正在尝试将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);?>
我得到空值
我该如何解决这个问题
答案 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);
,看看你得到了什么。