PHP SDK+;密码点火器

PHP SDK+;密码点火器,php,facebook,codeigniter,Php,Facebook,Codeigniter,首先,我下载了Facebook PHP SDK,并在这里应用了第一个答案: 在我的控制器中: 我尝试获取用户:$this->facebook->getUser()。。如果是0,我调用另一个函数$this->facebook_login();-否则我会在数据库中保存一些数据,比如name 在facebook_login()中,将生成一个登录Url:$this->facebook->getLoginUrl()-并将其传递给视图,视图将显示该Url 到目前为止,我点击登录url,它会重定向到Face

首先,我下载了Facebook PHP SDK,并在这里应用了第一个答案:

在我的控制器中:

  • 我尝试获取用户:$this->facebook->getUser()。。如果是0,我调用另一个函数$this->facebook_login();-否则我会在数据库中保存一些数据,比如name

  • 在facebook_login()中,将生成一个登录Url:$this->facebook->getLoginUrl()-并将其传递给视图,视图将显示该Url

  • 到目前为止,我点击登录url,它会重定向到Facebook,请求批准和验证等等,然后将我重定向回“1”中的页面

  • 问题是,getUser正在返回零。我打印了$SESSION变量,发现只设置了fb{appId}\u状态

  • 我尝试使用以下代码创建另一个不在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,$\u会话包含用户详细信息。因此,我猜问题出在CodeIgniter上,但我不确定如何解决它

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


    谢谢

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

    在问题开头的链接中找到的构造函数中,在加载facebook库之前添加这个:parse_str($\u SERVER['QUERY_STRING',$\u REQUEST);在application/config/config.php中,
    cookie\u域
    变量是否正确设置为您的域?是。我找到了解决方案,并将其作为评论发布。谢谢:)请随意将此标记为“接受答案”。如果需要。@GalalAly请不要链接到外部站点,因为不能保证该站点将来会存在。相反,在这里发布您的解决方案。