Php 带FB API 4的Codeigniter V2.x

Php 带FB API 4的Codeigniter V2.x,php,facebook,codeigniter,facebook-graph-api,Php,Facebook,Codeigniter,Facebook Graph Api,我想使用CodeIgniter创建一个简单的facebook web应用程序,以便能够发布到链接到我的facebook帐户的页面 目前这是我的代码: 控制器: function facebook(){ $this->config->load('facebook', TRUE); $this->load->library('facebook'); $login_url = $this->facebook->get_user();

我想使用CodeIgniter创建一个简单的facebook web应用程序,以便能够发布到链接到我的facebook帐户的页面

目前这是我的代码:

控制器:

function facebook(){
    $this->config->load('facebook', TRUE);
    $this->load->library('facebook');
    $login_url = $this->facebook->get_user();
    echo $login_url;
}
图书馆:

我确实使用了粘贴在这里的代码:(本·马歇尔)

默认情况下,库代码不打印相应的异常。因此,我必须扩展代码,使其看起来像这样(在构造函数上):


有人能为我提出一个可能的解决方案吗?有人成功地用CI开发了FB API 4吗?

那么您需要编写会话_start();在将在php页面上启动会话的页面开始处

此外,如果您可以从autoload.php配置文件自动加载facebook库,这将很好


这方面运气好吗?我也一样issue@seesoe我放弃了这个。事实证明,没有直接的解决方案。我通过打电话到这个API建立了自己的库,经过大量的搜索,我终于找到了它。事实证明,新SDK有两个函数可以直接调用本机php会话。因此,您必须扩展该类并使其使用codeigniter会话。希望这能帮助任何有这个问题的人!
public function __construct() {
        $this->ci =& get_instance();
        $this->ci->load->library('session');
        if (!isset($_SESSION)){
            session_start();
        }

        FacebookSession::setDefaultApplication(
            $this->ci->config->item('api_id', 'facebook'),
            $this->ci->config->item('app_secret', 'facebook')
        );

        $this->helper = new FacebookRedirectLoginHelper($this->ci->config->item('redirect_url', 'facebook'));
        if($this->ci->session->userdata('fb_token')){
            $this->session = new FacebookSession( $this->ci->session->userdata('fb_token'));

            // Validate the access_token to make sure it's still valid
            try {
                if (!$this->session->validate()){
                    $this->session = false;
                }
            }catch(Exception $e){
                // Catch any exceptions
                $this->session = false;
            }

        }else{
            try {
                $this->session = $this->helper->getSessionFromRedirect();
            }catch(FacebookRequestException $ex){
                echo "<pre> "; print_r($ex->getCode());
                // When Facebook returns an error
            }catch(Exception $ex){ 
                echo "<pre>"; print_r($ex);
                // When validation fails or other local issues
            }
        }

        if ($this->session ){
            $this->ci->session->set_userdata( 'fb_token', $this->session->getToken() );
            $this->session = new FacebookSession( $this->session->getToken());
        }
    }
protected function loadState()
  {
    if ($this->checkForSessionStatus === true
      && session_status() !== PHP_SESSION_ACTIVE) {
      throw new FacebookSDKException(
        'Session not active, could not load state.', 721
      );
    }
    if (isset($_SESSION[$this->sessionPrefix . 'state'])) {
      $this->state = $_SESSION[$this->sessionPrefix . 'state'];
      return $this->state;
    }

    return null;
  }
class MyFacebookRedirectLoginHelper extends \Facebook\FacebookRedirectLoginHelper {
    public function __construct() {
        $this->ci = & get_instance();
    }

    protected function storeState($state) {
        if ($this->ci->session->set_userdata($this->sessionPrefix . 'state', $state)) {
            $this->state = $this->ci->session->set_userdata($this->sessionPrefix . 'state', $state);
        return $this->state;
        }
        return NULL;
    }

    protected function loadState() {
        return $this->state = $this->ci->session->userdata($this->sessionPrefix . 'state');
    }
}