11

我是使用 Facebook SDK 开发网站的新手。所以请多多包涵。

下面是用于验证我是否已登录 Facebook 的简单代码。出于某种原因,我总是得到“not_autherized”响应,即使我是我的应用程序的唯一开发者。我提供的应用程序编号是正确的。

<!DOCTYPE html>
<html lang="en">
  <head>
  </head>
  <body>
    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
          // init the FB JS SDK
          FB.init({
              appId      : 'censored app id', // App ID from the app dashboard
              status     : true,              // Check Facebook Login status
              cookies    : true,
              xfbml      : true               // Look for social plugins on the page
          });

          FB.getLoginStatus(checkLoginStatus);
          function checkLoginStatus(response) {
              if (response && response == 'connected') {
                  alert('User is authorized!');
              } else {
                  alert('User not authorized!!!');
              }
          };

          // Additional initialization code such as adding Event Listeners goes here
      };

      // Load the SDK asynchronously
      (function(d, s, id) {
          if (d.getElementById(id)) return;

          var js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js";

          var fjs = d.getElementsByTagName(s)[0];
          fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
    </script>
  </body>
</html>

有什么我忽略的吗?

非常感激 :)

4

1 回答 1

13

一个朋友帮我解决了这个问题。他非常有帮助地指出了 Facebook 忽略记录的一些内容。当您创建新的 facebook 应用程序时,管理员和开发人员不会自动对其进行授权。授权应用程序是存在于“帐户设置->应用程序”列表中的应用程序。如果它不在此列表中,则它未被授权。

这意味着您需要在代码中的某个位置调用 FB.login() 才能弹出用户授权窗口。

请注意,这应该从按钮调用。否则,可能会阻止弹出窗口。

希望这可以帮助除我以外的其他人。

干杯:)

于 2013-08-05T14:22:46.983 回答