我试图在Facebook上查询不同的信息,例如 - 朋友列表。它工作正常,但当然它只提供有限数量的结果。如何访问下一批结果?
.on('click', function(item, index, alwayzZero) {
if (selectedThis) {
d3.select(selectedThis).transition().attr("d", arc);
selectedThis = null;
selectedSlice = null;
}
})
结果JSON确实给了我之前和之后的分页游标 - 但是我把它放在哪里?
答案 0 :(得分:3)
我正在通过Python的facepy
库探索Facebook Graph API(也适用于Python 3),但我想我可以提供帮助。
您需要将&after=YOUR_AFTER_CODE
附加到您调用的网址(例如:https://graph.facebook/v2.8/YOUR_FB_ID/friends/?fields=id,name
),为您提供类似这样的链接:https://graph.facebook/v2.8/YOUR_FB_ID/friends/?fields=id,name&after=YOUR_AFTER_CODE
,您应该进行GET请求
您需要requests
才能使用您的用户ID(我假设您知道如何以编程方式找到它)获取Graph API的获取请求以及一些类似于我在下面给您的网址(参见URL
变量)。
import facebook
import json
import requests
ACCESS_TOKEN = ''
YOUR_FB_ID=''
URL="https://graph.facebook.com/v2.8/{}/friends?access_token={}&fields=id,name&limit=50&after=".format(YOUR_FB_ID, ACCESS_TOKEN)
def pp(o):
all_friends = []
if ('data' in o):
for friend in o:
if ('next' in friend['paging']):
resp = request.get(friend['paging']['next'])
all_friends.append(resp.json())
elif ('after' in friend['paging']['cursors']):
new_url = URL + friend['paging']['cursors']['after']
resp = request.get(new_url)
all_friends.append(resp.json())
else:
print("Something went wrong")
# Do whatever you want with all_friends...
with open('facebook.txt', 'a') as f:
json.dump(o, f, indent=4)
g = facebook.GraphAPI(ACCESS_TOKEN)
pp(g.get_connections('me', 'friends'))
希望这有帮助!