Codeigniter 2.0 / Facebook Connect - 类初始化问题

时间:2011-05-04 07:52:23

标签: codeigniter facebook facebook-graph-api

我会继续在每个人面前感到愚蠢,因为我无法发现这里的问题,尽管我怀疑这将是一个真正的呻吟。也许描述它会在我脑海里慢慢来。

我正在根据这个人的工作与CI2.0进行Facebook Connect集成:

http://hitsend.ca/2010/10/facebook-connect-user-authentication-using-the-new-graph-api-in-codeigniter/

我已升级到2.0

一些相关的代码位是:

配置/ facebook.php:


 $config['facebook_api_key'] = 'xxx';  (it is the ID, not the key, as he misnamed his array key)
 $config['facebook_secret_key'] = 'xxx'; 

控制器/ fb_login.php


    function index() {
        $this->load->library('fb_connect');

库/ fb_connect.php


    include(APPPATH.'libraries/facebook/facebook.php');

    class fb_connect {
          ....

        function fb_connect()
        {
            //Using the CodeIgniter object, rather than creating a copy of it
            $this->_obj =& get_instance();

            //loading the config paramters for facebook (where we stored our Facebook API and SECRET keys
            $this->_obj->load->config('facebook');
            //make sure the session library is initiated. may have already done this in another method.
            $this->_obj->load->library('session'); 

            $this->_api_key        = $this->_obj->config->item('facebook_api_key');
            $this->_secret_key    = $this->_obj->config->item('facebook_secret_key');

            $this->appkey = $this->_api_key;

            //connect to facebook
            $this->fb = new Facebook(array(
                          'appId'  => $this->_api_key,
                          'secret' => $this->_secret_key,
                          'cookie' => true
                        ));

最后,facebook php库: 库/ Facebook的/ facebook.php


  public function __construct($fb_config) {
print_r($fb_config);
    $this->setAppId($fb_config['appId']);
    $this->setApiSecret($fb_config['secret']);
    if (isset($fb_config['cookie'])) {
      $this->setCookieSupport($fb_config['cookie']);
    }

我能描述问题的最好方法就是给你print_r的输出($ fb_config):

Array ( [facebook_api_key] => xxx [facebook_secret_key] => xxx) 

和 消息:未定义的索引:appId 消息:未定义索引:秘密

facebook __construct()一直在加载配置文件的$ config []数组;不知道为什么会这样做。

提前感谢任何关于“我做过的蠢事”的任何线索或发现

2 个答案:

答案 0 :(得分:0)

数组返回两个键:facebook_api_keyfacebook_secret_key,而构造函数正在尝试读取键appIdsecret

此外,您正在使用的库可能已过期。 The current sourcelibraries/facebook/facebook.php),第186-88行:

public function __construct($config) {
    $this->setAppId($config['appId']);
    $this->setApiSecret($config['secret']);

答案 1 :(得分:-1)

是的,返回错误键的数组是我试图解决的问题。事实证明,之前设置Facebook Connect的尝试仍然在开发服务器上,并且自动加载了一个名为“facebook”的库,这与我们当前使用的库不同。这种自动加载过早地调用了新库。不清楚它为什么使用配置文件的数组,但我想我必须深入挖掘核心类才能解决这个问题,而不是那么感兴趣