使用facebook api登录

时间:2012-04-28 14:43:02

标签: php javascript facebook

我的代码如下。为什么$userId总是0?当我单击“登录”按钮时,我得到B.login() called when user is already connected.。当我在fb中检查允许的应用时,会添加此应用。看起来我已经连接了,所以它应该是id而不是0

<pre>
define('YOUR_APP_ID', ###);

require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => ###,
  'secret' => '###',
));

$userId = $facebook->getUser();
echo $userId;
?>

<html>
  <body>
    <?php if ($userId) { 
      $userInfo = $facebook->api('/' + $userId); ?>
      Welcome <?= $userInfo['name'] ?>
    <?php } else { ?>
    <div id="fb-root"></div>
    <fb:login-button></fb:login-button>
    <?php } ?>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : '<? echo('####'); ?>',
          status     : true, 
          cookie     : true,
          xfbml      : true,
          oauth      : true,
        });

        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
      };

      (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>
  </body>
</html>

2 个答案:

答案 0 :(得分:1)

当我使用 FBJS SDK 进行连接时,我也遇到同样的问题,我也担心自己这个功能如何运行以及这个问题如何解决但严重不成功......

我推荐这个链接https://github.com/facebook/php-sdk,因为它易于用于Facebook连接....

此外,我不想在这里复制我的代码,因为它太长而且属于codeigniter

答案 1 :(得分:0)

你在IE工作吗?如果是这样,您需要将P3P标题添加到您的所有页面。

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

如果没有,请在登录应用程序时为用户提供良好的权利。