如何调用FB.api

时间:2012-01-30 01:28:43

标签: javascript facebook-graph-api facebook

我正在使用FB JavaScript SDK并完全遵循FB教程。我已经添加了登录按钮,使用我的FB帐户登录并尝试进行非常基本的FB.api呼叫,但即使在我登录facebook后也没有得到正确的响应。这是代码:

 <script>
   window.fbAsyncInit = function() {
     FB.init({
       appId      : '291660820848913',
       status     : true, 
       cookie     : true,
       xfbml      : true,
       oauth      : true,
     });

   FB.api('/me', function(response) {
     alert(response.name);
   });  

   };
   (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>

这给了我一个“未定义”的警告。我做错了吗?

4 个答案:

答案 0 :(得分:5)

   FB.api('/me', function(response) {
     alert(response.name);
   }); 

只有在您知道用户已通过身份验证后才能执行此操作。您应在致电FB.getLoginStatus()之前致电FB.api()

答案 1 :(得分:3)

轻松更改行

js.src = "//connect.facebook.net/en_US/all.js";

到此:

js.src = "http://connect.facebook.net/en_US/all.js";

答案 2 :(得分:2)

确保您之前已登录。

FB.login(function(response) {
  console.log(response);
  if (response.status=="connected") {
    console.log("You're loggued in");
    FB.api('/me', function(response) {
       alert(response.name);
      }); 
  } 
});

在此示例中,我强制登录,但考虑先检查状态(http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/)

答案 3 :(得分:2)

您可以订阅该活动:

IE)

FB.Event.subscribe('auth.login', function(response) {
  FB.api('/me', function(response) {
    alert(response.name);
  });
});