FB.api总是未定义?

时间:2013-05-23 18:36:42

标签: javascript facebook facebook-javascript-sdk

我正在努力学习如何做到这一点,但我一直遇到问题。

FB.ui适用于发布,但每次我使用FB.api时都会显示为未定义,我会得到一张随机图片。我做错了什么?

      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : 'numbers', // App ID
            channelUrl : '/channel.php', // Channel File
            status     : true, // check login status
            cookie     : true, // enable cookies to allow the server to access the session
            xfbml      : true  // parse XFBML
          });
          FB.api('/me', function(user) {
            if (user) {
              var image = document.getElementById('image');
              image.src = 'https://graph.facebook.com/' + user.id + '/picture';
              var name = document.getElementById('name');
              name.innerHTML = user.name
            }
          });
        };
        // Load the SDK Asynchronously
        (function(d, s, id){
           var js, fjs = d.getElementsByTagName(s)[0];
           if (d.getElementById(id)) {return;}
           js = d.createElement(s); js.id = id;
           js.src = "//connect.facebook.net/en_US/all.js";
           fjs.parentNode.insertBefore(js, fjs);
         }(document, 'script', 'facebook-jssdk'));
      </script>
      <div align="center">
        <img id="image"/>
        <div id="name"></div>
      </div>

1 个答案:

答案 0 :(得分:0)

您需要在进行API调用之前调用FB.login。我想,那就是你所缺少的。