使用Facebook Graph API获取用户好友列表

10

我需要获取我的应用程序中某个用户的朋友列表,以便在好友选择器中过滤出显示的用户。我知道可以调用以下方法来获取该列表:

https://graph.facebook.com/me/friends?access_token=<access_token>

我在地址栏中使用了自己的帐户测试它,似乎正好符合我的需求。问题是,我不知道如何在js文件中使用它。我尝试调用它并使用jQuery调用获取数据,但似乎没有返回任何有用的东西。

$.get("https://graph.facebook.com/me/friends",
    {access_token: <access_token>},
    function(data){ document.write("Data Loaded: " + data);});

我应该如何在我的js文件中调用它,并实际利用这些信息呢?谢谢。

3个回答

23

更新:根据V2.0版本引入的更改/me/friends仅会返回应用好友


正确的方法是使用Facebook Javascript-SDK,类似于以下内容:

function getFriends() {
    FB.api('/me/friends', function(response) {
        if(response.data) {
            $.each(response.data,function(index,friend) {
                alert(friend.name + ' has id:' + friend.id);
            });
        } else {
            alert("Error!");
        }
    });
}
请注意:
  1. 我在这里也使用了jQuery。
  2. 在调用此函数之前,您可能需要检查用户是否已连接。

2
两个答案都是正确的,但这个例子肯定赢得了奖品。非常感谢! - keybored
这个解决方案只会拉取那些已经授权该应用程序的用户。有没有一个解决方案可以拉取我朋友列表中的所有用户? - Severino Lorilla Jr.
@severinolorillajr,这是不可能的。 - ifaour

3

如果你想用JavaScript从图中提取信息,你需要使用JS SDKFB.api方法进行调用。


2

对我来说它正常工作:

<!DOCTYPE html> <html lang="en"> <head>
    <meta charset="utf-8" />
    <title>JSON Sample</title> </head> <body>
    <div id="placeholder"></div>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script>   $.getJSON('https://graph.facebook.com/eris.risyana/friends?limit=100&access_token=[your_access_token]', function(mydata) {
        var output="<ul>";
        for (var i in mydata.data) {
            output+="<li>NAMA : " + mydata.data[i].name + "<br/>ID : " + mydata.data[i].id + "</li>";
        }

        output+="</ul>";
        document.getElementById("placeholder").innerHTML=output;   });
    </script> </body> </html>

结果:

NAMA : Priscillia Anna Yuliana
ID : 534513444
NAMA : Priyatna Mii
ID : 534619517
NAMA : Icha Sasmita
ID : 544737437
NAMA : CW Trianggono
ID : 599225957
NAMA : Krshna Sulanjana
ID : 605633569
NAMA : Aris Pujiarti
ID : 635209234
NAMA : Armand Muljadi
ID : 663419616
NAMA : Nurdin Somantri
ID : 675697956
NAMA : Muhammad Zamzam Fauzanafi
ID : 686838979
NAMA : Jerome Coutelier
ID : 690661663

@Abhinay:采用这种方法时,我遇到了访问令牌的问题,因此开始在我的应用程序中使用JS SDK。 - Shilpa
@Shilpa,我想知道的是你是否能够获取完整的Facebook好友列表? - Abhinay

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