为什么可以't我有一个Facebook用户'的名字

Why can't I get a Facebook user's name?

本文关键字:用户 Facebook 为什么 有一个      更新时间:2023-09-26

我有下面的代码,它可以很好地登录和退出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>

当您进入时

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

我看不出你是在检查错误代码,还是用户甚至没有登录

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

    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>

在您的标记中(在body标记之间)