我使用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 }
}
答案 0 :(得分:2)
不幸的是,你无法获得Graph API 2.0+上的所有朋友列表,你只能让你的朋友使用你的应用程序(使用手段,已经在Facebook上授予了该应用程序的权限)。 total_count
键表示用户有424位朋友,这并不意味着您可以从您的应用中获取所有424位朋友。
您看到的列表只是授权您的应用的人,因为那里只有少数人,分页会产生一个空洞的结果,因为您所看到的只是你所拥有的。