FaceBook登录按钮错误:在调用FB.init()之前调用FB.login()

时间:2011-02-05 21:04:54

标签: javascript facebook

执行此代码后出现此错误:

 <div id="fb-root"></div>
 <script src="http://connect.facebook.net/en_US/all.js"></script>
 <script>
   FB.init({
     appId  : 'realIdInTheCode',
     status : true, // check login status
     cookie : true, // enable cookies to allow the server to access the session
     xfbml  : true  // parse XFBML
   });
 </script>

<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=realIdInTheCode&amp;xfbml=1">
</script><fb:login-button show-faces="false" width="200" max-rows="1"></fb:login-button>

我认为在login()

之前调用init()

但是我仍然遇到了这个错误:错误:在调用FB.init()之前调用了FB.login()。

此时我完全混淆了,所以我真的很感激帮助:)

3 个答案:

答案 0 :(得分:4)

我曾经认为FBML已被弃用。我刚刚测试过,这对我有用

<html>
    <head>
    </head>
    <body>
        <div id="fb-root"></div>
        <script>
          //initializing API
          window.fbAsyncInit = function() {
            FB.init({appId: 'MYAPPID', status: true, cookie: true,
                     xfbml: true});
          };
          (function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
          }());
        </script>

        <button type="button" onclick="fblogin();">Facebook Login</button>


        <script>
          //your fb login function
          function fblogin() {
            FB.login(function(response) {
                //User logged in!
                if (response.session) {
                    alert('YAY!');
                } else {
                // user cancelled login
                    alert('NAY!');
                }

            }, {perms:'email,read_stream,publish_stream'});
          }
        </script>

    </body>
</html>

    <html>
        <head>
        </head>
        <body>
            <script src="http://connect.facebook.net/en_US/all.js"></script>
            <script>
              FB.init({
                appId  : 'MYAPPID',
                status : true, // check login status
                cookie : true, // enable cookies to allow the server to access the session
                xfbml  : true  // parse XFBML
              });

            </script>
        <button type="button" onclick="fblogin();">Facebook Login</button>
        <script>
          //your fb login function
          function fblogin() {
              FB.login(function(response) {
                  //User logged in!
                  if (response.session) {
                      alert('YAY!');
                  } else {
                  // user cancelled login
                      alert('NAY!');
                  }

              }, {perms:'email,read_stream,publish_stream'});
            }
        </script>

    </body>
</html>

参阅:

答案 1 :(得分:2)

试试这段代码:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({
    appId  : 'realIdInTheCode',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>
<fb:login-button show-faces="false" width="200" max-rows="1"></fb:login-button>

答案 2 :(得分:1)

对我来说,结果是应用程序本身存在一些问题。所以我在FB中删除了旧的应用程序并创建了一个新的应用程序。事情刚刚开始起作用。