Php Facebook getUser()返回0

Php Facebook getUser()返回0,php,facebook,codeigniter,authentication,login,Php,Facebook,Codeigniter,Authentication,Login,我正在使用带有Codeigniter的PHPSDK实现Facebook登录。我得到Facebook登录弹出窗口,点击登录,但我无法检索用户的id-它总是返回0 我已经将facebook.php和base_facebook.php文件放在我的库文件中,并在教程之后将其作为库包含在Codeigniter中 有人能告诉我他们认为发生了什么事吗?我正在使用以下代码- 查看-Facebook登录按钮 <div id="fb-root"></div> <script&g

我正在使用带有Codeigniter的PHPSDK实现Facebook登录。我得到Facebook登录弹出窗口,点击登录,但我无法检索用户的id-它总是返回0

我已经将facebook.php和base_facebook.php文件放在我的库文件中,并在教程之后将其作为库包含在Codeigniter中

有人能告诉我他们认为发生了什么事吗?我正在使用以下代码-

查看-Facebook登录按钮

  <div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '<?php echo $this->config->item('facebook_app_id'); ?>',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true,
      });

          FB.Event.subscribe('auth.login', function() {
            window.location='<?php echo base_url(); ?>auth_other/fb_signin/';
          });

    };
    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));

  </script>
  <div class="fb-login-button">Login with Facebook</div>
    function fb_signin()
    {           
        $fb_user = null;

        $fb_config = array(
        'appId'  => $this->config->item('facebook_app_id'),
        'secret' => $this->config->item('facebook_app_secret')
        );

        $this->load->library('facebook',$fb_config);

        $fb_user = $this->facebook->getUser();


        echo $fb_user;

如果应用程序域是实域,但站点url是localhost,则getUser函数返回0

遇到一种情况,即getUser()返回0,而实际上不应该返回0,则应用程序仍处于沙盒状态。原来用户没有接受成为应用程序开发人员的请求。

我遇到了类似的问题。我使用了一个示例项目,无法理解为什么它一直返回0。在这里尝试了几乎所有的相关链接,但没有一个解决它

解决方案是在示例项目中更新Facebook的SDK文件。
很简单,很容易被忽略,

我也有同样的问题,在花了很长时间试图找出问题所在之后, 我发现您需要访问令牌才能获取用户ID。 要从已签名的_请求中获取访问令牌,用户必须首先授权(获取权限)您的应用。
我希望这会有所帮助

我遇到过类似的问题,这里有一个可能对您有所帮助的解决方案

$facebook = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxxx',
  "redirect_uri" => "set the uri to point to the same page"
 ));

$user = $facebook->getUser();

if($user)
{
//your task
} else {
header('location:'. $facebook->getLoginUrl());

}

$user = $facebook->getUser();

if($user)
{
//your task
} else {
header('location:'. $facebook->getLoginUrl());

}

上面的代码解释是,如果getUser()返回一个0,那么我们需要使用$facebook->getLoginUrl()重定向到一个用户将接受应用程序并获得权限的页面,如果用户接受,则getUser()将工作,否则您将再次获得0。ù不正确,如果您将画布url指示为“”,并且在应用程序域下指示为“localhost”,则上述操作甚至在localhost下也有效