使用Javascript获取Facebook用户个人资料数据

19

我需要使用Javascript获取Facebook用户的UID、性别、照片和其他个人资料数据。

我记得以前有一种方法可以通过.id、.gender、.photo等方式获取用户对象,但我没有API调用的副本,并且在文档中也找不到解释。

我该如何使用Javascript获取用户UID和性别?

谢谢

3个回答

22

2011年被接受的答案中使用的FB.getSession()函数现在已经过时并从Facebook JS SDK中删除(至2012年)。

您仍然可以通过以下方式使用getLoginStatus()方法来查找用户的Facebook ID:

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    alert ("Your UID is " + response.authResponse.userID);
  }
});

注意:你仍然需要初始化Facebook API,并像Aleadam在被接受的回答中解释的那样,在你的HTML中放置fb-root元素。


1
你的解决方案可行,但有一个小错误。我使用了fb.login(),在那里你必须使用response.authResponse.userId而不是userID。 还是非常感谢,你帮我避免了大麻烦。点赞 :) - Vikas Gupta
奇怪。我的本地测试和Facebook的文档都使用大写字母D。请参见http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/。 - user327961
现在真的很奇怪,因为这里用大写字母不起作用 :D - Vikas Gupta

20

更新:我在答案中添加了更多细节:

首先,您需要调用FB.init并添加您的应用程序ID:

FB.init(
{
    appId  : APP_ID,
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
});

接下来,检查是否有会话已经打开(即用户已登录)

if(FB.getSession() != null) {

通过以下方式查询详细信息:

    FB.api('/me', function(response) 
    {
        alert ("Welcome " + response.name + ": Your UID is " + response.id); 
    });
}
您还需要在页面的中添加
,并加载。
用户的个人资料图片可以通过http:/graph.facebook.com/USERID/picture/进行访问。
请查阅Graph API参考文档:http://developers.facebook.com/docs/reference/api/user/和FB SDK参考文档:http://developers.facebook.com/docs/reference/javascript/

@gary 代表 Aleadam 添加 - Lee Taylor
1
谢谢,但是这个函数已经过时了,请使用FB.getLoginStatus代替。 - Alex Pliutau
如何获取用户地址?我应该使用 response.address 吗? - Asif Iqbal

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接