Facebook JS SDK如何获得当前用户的名字?

时间:2011-02-13 23:51:03

标签: facebook facebook-graph-api

我是否必须通过FB.api进行图表API调用才能获取当前登录用户的名字?或者,有更容易/更快的方式吗?

6 个答案:

答案 0 :(得分:11)

FB.api('/me', function(response) {
    $('#name').html("Welcome " + response.name);
});

这就是你所需要的一切。

答案 1 :(得分:2)

FB JS SDK API登录请求不再返回属性firstname和lastname。这在ver之间有所改变。 2.2(06/2014)和2.5(01/2015)。

背后的原因是,登录请求仅返回公开可用的属性,即 fbid 名称。名字和姓氏不是可公开访问的属性,需要用户授予的权限。 See here

我们使用"猜测解决方法" - 如果属性名称包含多个单词,我们会将其拆分为 firstname lastname 属性,或者从name填充firstname。在某些情况下,它比使用权限,响应检查,回调等打扰用户更好/更容易。

答案 2 :(得分:1)

是的,您必须使用api调用,因为它未在访问令牌中编码或传递给应用程序的任何其他信息。

如果关注的是性能,您当然可以缓存结果。

答案 3 :(得分:1)

您可以按如下方式使用FB.api

function fqlQuery(){
         FB.api('/me', function(response) {
              var query = FB.Data.query('select name,email,hometown_location, sex, pic_square from user where uid={0}', response.id);
              query.wait(function(rows) {
                uid = rows[0].uid;
                document.getElementById('name').innerHTML =
                  'Your name: ' + rows[0].name + "<br />" +
                  'Your email: ' + rows[0].email + "<br />" +
                  'Your hometown_location: ' + rows[0].hometown_location + "<br />" +
                  'Your sex: ' + rows[0].sex + "<br />" +
                  'Your uid: ' + rows[0].uid + "<br />" +
                  '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />";
              });
         });
     }

答案 4 :(得分:0)

调用graph api调用获取User名字很好。您还可以查询User表以获取用户名。它取决于你喜欢什么?

答案 5 :(得分:0)

Facebook允许您获取名字,姓氏(不需要特殊许可),教育历史以及Facebook用户个人资料的更多内容。但是,要获取“敏感”信息,用户必须批准您的应用(如果尚未批准),然后批准教育历史等“敏感”信息。 http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html页面显示了使用javascript SDK的整个过程以及有关如何使用网页设置应用的一些信息。