Facebook JS SDK如何获取当前用户的名字?
答
是的,你必须使用api调用,因为它没有被编码在访问令牌或传递给应用程序的任何其他信息中。
如果担心的是性能,您当然可以缓存结果。
答
您可以使用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 />";
});
});
}
答
FB.api('/me', function(response) {
$('#name').html("Welcome " + response.name);
});
这就是你需要的。
答
Facebook拥有的JavaScript SDK允许您获取名字,姓氏(不需要特别许可),教育历史以及更多Facebook用户个人资料。但是,要获得“敏感”信息,用户必须批准您的应用(如果他们还没有),然后批准教育历史等“敏感”信息。 http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html的页面显示了使用JavaScript SDK的整个过程以及如何使用网页设置应用程序的一些信息。
答
FB JS SDK API登录请求不再返回属性firstname和lastname。这在一段时间之间改变了。 2.2(06/2014)和2.5(01/2015)。
背后的原因是,该登录请求,仅返回公开可用的属性,这是FBID和名。名字和姓氏不是可公开访问的属性,并且需要用户授予的权限。 See here。
我们用一个“猜测的解决办法” - 如果属性名已经超过1个字,我们把它们分成姓和姓氏属性,或者从名称填入姓名。在某些情况下,它比使用权限,响应检查,回调等方式更好/更容易。
我会在哪里缓存它?本地存储? – ma11hew28 2011-02-14 23:02:02
```window.localStorage.setItem('Facebook',JSON.stringify(response));`` – Alastair 2013-08-05 06:04:19