我会继续在每个人面前感到愚蠢,因为我无法发现这里的问题,尽管我怀疑这将是一个真正的呻吟。也许描述它会在我脑海里慢慢来。
我正在根据这个人的工作与CI2.0进行Facebook Connect集成:
我已升级到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 []数组;不知道为什么会这样做。
提前感谢任何关于“我做过的蠢事”的任何线索或发现
答案 0 :(得分:0)
数组返回两个键:facebook_api_key
和facebook_secret_key
,而构造函数正在尝试读取键appId
和secret
此外,您正在使用的库可能已过期。 The current source(libraries/facebook/facebook.php
),第186-88行:
public function __construct($config) {
$this->setAppId($config['appId']);
$this->setApiSecret($config['secret']);
答案 1 :(得分:-1)
是的,返回错误键的数组是我试图解决的问题。事实证明,之前设置Facebook Connect的尝试仍然在开发服务器上,并且自动加载了一个名为“facebook”的库,这与我们当前使用的库不同。这种自动加载过早地调用了新库。不清楚它为什么使用配置文件的数组,但我想我必须深入挖掘核心类才能解决这个问题,而不是那么感兴趣