Facebook API有效,但不能与codeigniter一起使用吗?

时间:2012-06-19 18:11:10

标签: php codeigniter facebook-php-sdk

我正在使用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和秘密进行了双重和三重检查,甚至在这里回应它以确保它正确地作为一个数组通过,但仍然没有。 $this->user;不断为UID返回0。我错过了什么?

我刚刚看到这个question讨论了uri_protocol是问题,但是我必须设置$config['uri_protocol'] = 'QUERY_STRING';以使我的mod_rewrite脚本首先工作,这让我想知道它是否是相同的问题与否。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

用这个.. require_once($ _ SERVER [ 'DOCUMENT_ROOT'] “/” $这 - > config->项( 'app_folder_path') “应用/库/实/ facebook.php”。);

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