2011-02-13 53 views

回答

1

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

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

+0

我会在哪里缓存它?本地存储? – ma11hew28 2011-02-14 23:02:02

+0

```window.localStorage.setItem('Facebook',JSON.stringify(response));`` – Alastair 2013-08-05 06:04:19

0

它很好的调用图形API调用获得User名。您也可以查询User表以获取用户名。它取决于你你喜欢什么?

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 />"; 
       }); 
     }); 
    } 
11
FB.api('/me', function(response) { 
    $('#name').html("Welcome " + response.name); 
}); 

这就是你需要的。

0

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

2

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

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

我们用一个“猜测的解决办法” - 如果属性已经超过1个字,我们把它们分成姓氏属性,或者从名称填入姓名。在某些情况下,它比使用权限,响应检查,回调等方式更好/更容易。

相关问题