目前,如果我使用facebook的require_login,它似乎会进入追加到url的无限循环。我的所有控制器都继承自构造时的FB_Controller:
$this->facebook = new Facebook($this->API_KEY, $secret);
$this->uid = $this->facebook->require_login(); //Causes infinite loop!
我必须将Facebook上的画布回调URL显式设置为http://decider.dfgh.org/ask/index/(其中ask是我想要的默认控制器),否则我会收到404错误。我也在使用iframe渲染方法。
在CodeIgniter上我有典型的mod_rewrite来摆脱index.php,$ config ['uri_protocol'] =“REQUEST_URI”,$ config ['enable_query_strings'] = TRUE。后两种配置我必须设置为简单链接才能工作(单击像http://decider.dfgh.org/decide/这样的链接不起作用,它只会导航到当前页面。)
答案 0 :(得分:1)
我只是将uri_protocol设置为request_url或path_info,具体取决于referrer标头。所以在config.php中我有:
$config['uri_protocol'] =
(isset($_SERVER['HTTP_REFERER']) &&
strpos($_SERVER['HTTP_REFERER'], 'apps.facebook.com') !== false) ?
"PATH_INFO" : "REQUEST_URI";
我承认并不是最漂亮的,但它确实有效。
答案 1 :(得分:0)
我将此添加到我的配置文件中以执行完全相同的操作:
/ * Facebook Connect hack * / if(isset($ _ SERVER ['HTTP_REFERER'])&& strpos($ _ SERVER ['HTTP_REFERER'],'facebook.com')!== false) { $ config ['uri_protocol'] ='PATH_INFO'; } else { $ config ['uri_protocol'] ='REQUEST_URI'; }