PHP SDK + Code Igniter

时间:2012-04-18 12:59:20

标签: php facebook codeigniter

首先,我下载了Facebook PHP SDK并在此处应用了第一个答案: Using Facebook PHP-SDK 3.x to register/login user with Codeigniter 2.1.0

在我的控制器中:

  1. 我试图让用户:$ this-> facebook-> getUser(); ..如果它是0,我调用另一个函数$ this-> facebook_login(); - 否则我会在数据库中保存一些数据,例如名称。

  2. 在facebook_login()中,会生成一个登录网址:$ this-> facebook-> getLoginUrl() - 并传递给显示它的视图。

  3. 到目前为止,我点击登录网址,然后重定向到Facebook,要求批准和身份验证等等 - 然后将我重定向回“1”页面。

  4. 问题是,getUser返回零。我打印了$ SESSION变量,发现只设置了fb {appId} _state。

  5. 我尝试使用以下代码创建另一个不在CI文件夹中的php文件(login.php):

    <?php
    
    define('BASEPATH', '');
    require_once('application/libraries/facebook.php');
    
    $fb = new Facebook(array('appId'=>'...', 'secret'=>'...'));
    
    $user = $fb->getUser();
    
    if($user == 0){
        $login = $fb->getLoginUrl();
        echo '<a href="'.$login.'">Login</a>';
    } else {
        print_r($fb->api('/me'));
    }
    
    ?>
    

    如果我访问login.php然后访问上面“1”中的页面 - getUser返回用户ID,$ _SESSION包含用户详细信息。因此,我猜问题是CodeIgniter,但我不知道如何解决它

    我搜索并尝试了几种解决方案,但这是我能做的最好的。如果可能,我不想使用JS SDK。

    谢谢

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案并写了一篇关于它的博客文章here