我是否必须通过FB.api
进行图表API调用才能获取当前登录用户的名字?或者,有更容易/更快的方式吗?
答案 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)
答案 5 :(得分:0)
Facebook允许您获取名字,姓氏(不需要特殊许可),教育历史以及Facebook用户个人资料的更多内容。但是,要获取“敏感”信息,用户必须批准您的应用(如果尚未批准),然后批准教育历史等“敏感”信息。 http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html页面显示了使用javascript SDK的整个过程以及有关如何使用网页设置应用的一些信息。