为什么我不能获得Facebook用户的名字?

时间:2012-03-05 20:33:31

标签: javascript facebook

我有以下代码,可以很好地登录和退出Facebook,但我无法显示用户的名字 - 此刻我甚至无法弄清楚我是否未能抓住它或者只是未能显示它。

<!DOCTYPE html><html lang="en"><head><title>New Document</title><link rel="stylesheet" href="/stylesheets/style.css"><div id="fb-root"></div><script>window.fbAsyncInit = function() {
  FB.init({
    appId    : 'my_api_key',
    status   : true,
    cookie   : true,
    xfbml    : true,
    oauth    : true,
  });
  FB.Event.subscribe('auth.login', function() {
    window.location = "http://my.site/doc";
  });
  FB.Event.subscribe('auth.logout', function() {
    window.location = "http://my.site/";
  });
  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;
    }
  });
};
(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></head>

2 个答案:

答案 0 :(得分:0)

当你进入

FB.api('/me', function(user) { if (user) {

我不知道您是在检查错误代码还是用户甚至没有登录。

您应该在FB.getLoginStatus()调用中包围FB.api调用,以确保您已登录。

答案 1 :(得分:0)

    var image = document.getElementById('image');
    image.src = 'https://graph.facebook.com/' + user.id + '/picture';
    var name = document.getElementById('name');
    name.innerHTML = user.name;
    alert(name)

说你需要

    <img id='image' />
    <div id='name'></div>
标记中的

(正文标记之间)