使用Facebook图形API检索Node.js中的整个friendList

时间:2015-08-15 13:32:01

标签: javascript node.js facebook facebook-graph-api

我使用Passport.js在Facebook上记录我的用户,然后我想得到他们的朋友列表。我使用FbGraph 来请求Facebook图形API。

到目前为止,这么好。 Facebook图形API结果被分页,但我无法超越第一页。然后回复是空的。

以下是代码:

var graph = require('fbgraph');

// accessToken is returned by Express
graph.setAccessToken(accessToken);

var getFriends = function(url) {
    graph.get(url, function (err, res) {
        console.log(res);
        if (res.paging && res.paging.next) {
            getFriends(res.paging.next);
        }
    });
};

getFriends('/me/friends');

输出:

{ data: 
    [ { name: 'Gonzague xxx', id: 'xxx' },
    { name: 'Cyprien xxx', id: 'xxx' },
    { name: 'Chloé xxx', id: 'xxx' },
    { name: 'Elena xxx', id: 'xxx' },
    { name: 'Sari xxx', id: 'xxx' },
    { name: 'Marie xxx', id: 'xxx' } ],
    paging: { next: 'https://graph.facebook.com/v2.0/xxx/friends?access_token=xxx&limit=5000&offset=5000&__after_id=enc_xxx' },
    summary: { total_count: 424 } }
    404
    { data: [],
    paging: { previous: 'https://graph.facebook.com/v2.0/xxx/friends?access_token=xxx' },
    summary: { total_count: 424 } 
}

1 个答案:

答案 0 :(得分:2)

不幸的是,你无法获得Graph API 2.0+上的所有朋友列表,你只能让你的朋友使用你的应用程序(使用手段,已经在Facebook上授予了该应用程序的权限)。 total_count键表示用户有424位朋友,这并不意味着您可以从您的应用中获取所有424位朋友。

您看到的列表只是授权您的应用的人,因为那里只有少数人,分页会产生一个空洞的结果,因为您所看到的只是你所拥有的。