使用Facebook PHP-SDK 3.x向Codeigniter 2.1.0注册/登录用户

使用Facebook PHP-SDK 3.x向Codeigniter 2.1.0注册/登录用户,php,facebook,codeigniter,facebook-php-sdk,Php,Facebook,Codeigniter,Facebook Php Sdk,浏览Facebook API,我对正确的方法有点困惑。我希望用户跳过注册,或者在使用Facebook登录时自动注册。所以,如果他们登录Facebook,我会收集他们的id、电子邮件,并在我的用户表中创建一个记录 如果用户表中已经存在id,他们将跳过自动注册并直接转到“成员”页面。这是我迄今为止的代码(摘自Facebook的PHPSDK示例)。当我运行注册脚本时,页面显示为空白,我不会被重定向 编辑:如果我使用下面的代码,“test”永远不会被打印出来,那么在require之后似乎就失败了 编辑:

浏览Facebook API,我对正确的方法有点困惑。我希望用户跳过注册,或者在使用Facebook登录时自动注册。所以,如果他们登录Facebook,我会收集他们的id、电子邮件,并在我的用户表中创建一个记录

如果用户表中已经存在id,他们将跳过自动注册并直接转到“成员”页面。这是我迄今为止的代码(摘自Facebook的PHPSDK示例)。当我运行注册脚本时,页面显示为空白,我不会被重定向

编辑:如果我使用下面的代码,“test”永远不会被打印出来,那么在require之后似乎就失败了

编辑:我正在使用Codeigniter,而这个脚本是控制器的一部分,这会导致require出现问题吗

require 'http://localhost/facebook-php-sdk-6c82b3f/src/facebook.php';
echo "test";
-


获取
$user
后,使用
print\r($\u session)
检查会话参数。然后,通过
if(isset($\u SESSION['some SESSION var'))
检查一些变量。如果此条件为真,则使用
标题(“location:main.php”)导航到主页面;退出

我建议您阅读该框架。向CodeIgniter添加库不是一项困难的任务。Facebook图书馆也不例外

这里是我刚刚提出的一个快速集成:

1.创建配置文件:
application/config/facebook.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['appId'] = 'app_id';
$config['secret'] = 'app_secret';
3.在控制器中加载配置文件,然后加载Facebook库:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        // Your own constructor code
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('facebook', $config);
    }

    public function index()
    {
        $user = $this->facebook->getUser();
        if($user) {
            try {
                $user_info = $this->facebook->api('/me');
                echo '<pre>'.htmlspecialchars(print_r($user_info, true)).'</pre>';
            } catch(FacebookApiException $e) {
                echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
                $user = null;
            }
        } else {
            echo "<a href=\"{$this->facebook->getLoginUrl()}\">Login using Facebook</a>";
        }
    }
}

您可以尝试使用我的扩展,它已设置为与Facebook一起使用。只需更新配置文件,它将允许您执行您需要执行的操作,以及我自己添加的一些其他方法。

不知道为什么,但它始终运行这一行:

echo”“

这是错误消息:

无法连接到主机


但这是可行的。

您是否尝试过使用文件系统路径而不是URL路径来满足需求?
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        // Your own constructor code
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('facebook', $config);
    }

    public function index()
    {
        $user = $this->facebook->getUser();
        if($user) {
            try {
                $user_info = $this->facebook->api('/me');
                echo '<pre>'.htmlspecialchars(print_r($user_info, true)).'</pre>';
            } catch(FacebookApiException $e) {
                echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
                $user = null;
            }
        } else {
            echo "<a href=\"{$this->facebook->getLoginUrl()}\">Login using Facebook</a>";
        }
    }
}