我为 cakephp 1.3 网站使用Webtechnick Facebook 插件。我大约一年前实施了它。直到现在它工作得很好。但是今天我发现当我尝试登录(作为新用户)时,它不会保存 facebook 用户数据,因为$this->Connect->user()
(结果来自$this->FB->api('/me')
, /plugins/facebook/controller/components/connect.php, line 194
)什么都不返回。我也试过,这个 facebook 插件在另一个 cakephp 2.0 网站上,但同样的东西在那里。
我认为,facebook api 发生了一些变化,因为我绝对没有在网站上进行任何更改,这可能会带来这样的结果。
这是组件中的user
功能connect.php
function user($field = null){
if(isset($this->uid)){
$this->uid = $this->uid;
if($this->Controller->Session->read('FB.Me') == null){
$this->Controller->Session->write('FB.Me', $this->FB->api('/me'));
}
$this->me = $this->Controller->Session->read('FB.Me');
}
else {
$this->Controller->Session->delete('FB');
}
if(!$this->me){
return null;
}
if($field){
$retval = Set::extract("/$field", $this->me);
return empty($retval) ? null : $retval[0];
}
return $this->me;
}
和我的beforeFacebookSave()
功能app_controller
public function beforeFacebookSave() {
$fbUser = $this->Connect->user ();
//debug($fbUser); // outputs nothing
$this->Connect->authUser ['User'] ['email'] = $fbUser ['email'];
$this->Connect->authUser ['User'] ['first_name'] = $fbUser ['first_name'];
$this->Connect->authUser ['User'] ['last_name'] = $fbUser ['last_name'];
return true;
}
谢谢 !