Codeigniter and Facebook API


Codeigniter and Facebook API

我一直在尝试让Facebook SDK与Codeigniter一起工作,但它不起作用。我已经在谷歌上搜索了大约8个小时,所以我终于屈服了,来到了这里。

1) 我将facebook.phpbase_facebook.php.crt文件放在我的应用程序/库文件夹中。

2) 我创建了一个控制器来处理我未来Ajax集成的所有Facebook API方法。

3) 我将库加载到新控制器的构造函数中。

这就是我犯的错误。

An Error Was Encountered
Unable to load the requested class: Facebook

我的控制器类看起来是这样的。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Fbapi extends Base_Controller {
    public function __construct()
    {
        parent::__construct();
    }
    public function index() {
        $this->load->library('facebook', $this->config->item('fb_api'));
    }
}

我的所有库文件名都是小写的,类名是UCFIRST。

我试着制作了一个名为test_library的新库,它能响应浏览器的响应,效果非常好,所以我真的很困惑为什么我的Facebook库没有加载。。。

提前谢谢。

没有加载它的原因是因为它不是CodeIgniter库,所以不能将其作为一个库导入。相反,要访问Facebook对象,您需要像在PHP中一样导入文件。

我会用这样的东西:

// Include the Facebook PHP SDK
require_once("facebook/facebook.php");
// Create the Facebook object
$config = array();
$config['appId'] = $this->config->item('facebook_app_id');
$config['secret'] = $this->config->item('facebook_secret');
$config['fileUpload'] = false;
$facebook = new Facebook($config);

然后,您可以使用$facebook对象访问SDK。

您需要修改require_once()中的路径以指向facebook.php文件,并且需要将facebook_app_idfacebook_secret的配置设置放在CodeIgniter配置中,但我以前也使用过类似的设置,效果很好。

如果你正在使用Facebook SDK做很多工作,你可能还想考虑将其拆分为一个单独的CodeIgniter库,并编写与Facebook接口的方法——在我的情况下,我这样做是因为我需要在几个地方检查用户是否登录了Facebook,并将其转换为一个独立的库会让事情变得更容易。或者,您可以将它放在构造函数中,将其存储为$this->facebook而不是$facebook,并可以在整个控制器中访问它。