我正在尝试根据FB平台升级要求,将基于Expressionengine的站点中的现有Facebook登录从API v1.0升级到v2.2。由于Javascript SDK不是一个选项(由于与EE成员模块的集成),我选择使用PHP SDK v4。
我有一个可用的登录网址,但当用户从Facebook登录网址返回时,登录后,getSessionFromRedirect()
会返回NULL
,而不是会话。
我已经浏览了互联网并查看了针对有类似问题的人发布的答案,但没有一个解决方案有效:
getLoginUrl()
更改状态我目前正在使用Ben Marshals Codeigniter example的改编版,但在用户重定向时,遗憾的是仍会返回NULL
。
生成FB登录URL的功能类似于:
public function generate_fb_url(){
$tags = $this->EE->TMPL->tagdata;
$vars = array();
$redirect='http://redirect.com';
$config=array('redirect'=>$redirect);
$this->EE->load->library('facebook_lib', $config, 'facebook');
array_push($vars, array('status'=>'true', 'error'=>'', 'fburl'=>$this->EE->facebook->login_url(), 'debug'=>'redirect -'.$redirect));
return $this->EE->TMPL->parse_variables($tags, $vars);
}
它只是启动CI Facebook库并创建FB URI。一旦用户从Facebook返回,应用程序就会死亡并执行var_dump($this->session);
返回NULL
。
任何意见都会非常感激,我此刻撕裂了我的头发!我有一种可怕的感觉,这个问题与Expressionengine的会话处理有关,但我可能是错的。