Facebook API可以使用,但不能使用codeigniter


Facebook API works, but not with codeigniter?

我正在一个使用Facebook API登录用户的网站上工作,但我在Facebook API本身遇到了一些令人困惑的问题。我认为这是使用CodeIgniter的结果。

我添加了一个不使用Codeigniter的PHP脚本,它可以连接。它看起来像这样:

require_once("application/libraries/Facebook/facebook.php");
$facebook = new Facebook(array(
        'appId'  => 'appid-removed-for-question',
        'secret' => 'secret-removed-for-question',
));
$user = $facebook->getUser();
echo $user;

这将从Facebook返回相应的UID。

一旦我尝试使用CodeIgniter库执行此操作,UID就会始终返回为0。这是库代码:

include(APPPATH.'libraries/Facebook/facebook.php');
class Fb_connect extends Facebook{
    public $user;
    public function __construct()
    {
        $CI =& get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        parent::__construct($config);
        $this->user = $this->getUser();
        echo $this->user;
    }
}

我已经在配置文件中反复检查了我的appid和secret,甚至在这里重复了一遍,以确保它作为数组正确通过,但仍然没有。$this->user;不断地为UID返回0。我错过了什么?

我刚刚看到这个问题,它说uri_procol是问题所在,但我必须首先设置$config['uri_protocol'] = 'QUERY_STRING';才能让我的mod_rewrite脚本工作,这让我怀疑这是否是同一个问题。有什么建议吗?

我链接到的问题的答案实际上为我解决了问题:

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

使用此。。require_one($_SERVER['DOCUMENT_ROOT']."/".$this->config->item('app_folder_path'(。"application/librarys/Facebook/fiacebook.php"(;

请确保在config.php文件中设置了app_folder_path配置变量。

相关文章: