Expressionengine中的Facebook PHP SDK getSessionFromRedirect返回NULL

时间:2015-02-19 18:32:21

标签: php codeigniter facebook-php-sdk expressionengine

我正在尝试根据FB平台升级要求,将基于Expressionengine的站点中的现有Facebook登录从API v1.0升级到v2.2。由于Javascript SDK不是一个选项(由于与EE成员模块的集成),我选择使用PHP SDK v4。

我有一个可用的登录网址,但当用户从Facebook登录网址返回时,登录后,getSessionFromRedirect()会返回NULL,而不是会话。

我已经浏览了互联网并查看了针对有类似问题的人发布的答案,但没有一个解决方案有效:

  • 添加' /'到OAuth重定向URI的结尾
  • 将代码拆分为两个不同的类/文件,以避免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的会话处理有关,但我可能是错的。

0 个答案:

没有答案