2010-02-03 18 views
2

目前如果我使用Facebook的require_login,它似乎進入追加到url的無限循環。我所有的控制器從FB_Controller是在建設確實繼承了:Facebook API的require_login與CodeIgniter配合使用

$this->facebook = new Facebook($this->API_KEY, $secret); 
$this->uid = $this->facebook->require_login(); //Causes infinite loop! 

我必須明確地設置畫布回調URL在Facebook上http://decider.dfgh.org/ask/index/(其中問的是我想要的默認控制器),否則我得到一個404錯誤。另外我使用iframe渲染方法。

關於CodeIgniter我有典型的mod_rewrite來擺脫index.php,$ config ['uri_protocol'] =「REQUEST_URI」,$ config ['enable_query_strings'] = TRUE。我必須設置後兩種配置才能獲得簡單的鏈接(點擊像http://decider.dfgh.org/decide/這樣的鏈接將無法工作,它只會導航到當前頁面)。

回答

1

我只需將uri_protocol設置爲request_url或path_info,具體取決於引用標頭。所以在config.php我有:

$config['uri_protocol'] = 
    (isset($_SERVER['HTTP_REFERER']) && 
    strpos($_SERVER['HTTP_REFERER'], 'apps.facebook.com') !== false) ? 
     "PATH_INFO" : "REQUEST_URI"; 

不是最漂亮的我承認,但它的作品。

0

我將此添加到我的配置文件來完成同樣的事情:

/* Facebook連接黑客*/ 如果(isset($ _ SERVER [ 'HTTP_REFERER'])& & strpos($ _ SERVER [」 HTTP_REFERER'],'facebook.com')!== false) { $ config ['uri_protocol'] ='PATH_INFO'; } else { $ config ['uri_protocol'] ='REQUEST_URI'; }