gpt4 book ai didi

python-3.x - python : Facebook Graph API - pagination request using facebook-sdk

转载 作者:行者123 更新时间:2023-12-03 22:26:13 25 4
gpt4 key购买 nike

我正在尝试查询 Facebook 以获取不同的信息,例如 - friend 列表。它工作正常,但当然它只提供有限数量的结果。我如何访问下一批结果?

import facebook
import json

ACCESS_TOKEN = ''

def pp(o):
with open('facebook.txt', 'a') as f:
json.dump(o, f, indent=4)


g = facebook.GraphAPI(ACCESS_TOKEN)
pp(g.get_connections('me', 'friends'))

结果 JSON 确实为我提供了 paging-cursors-before 和 after 值 - 但我应该把它放在哪里?

最佳答案

我正在通过适用于 Python 的 facepy 库探索 Facebook Graph API(也适用于 Python 3),但我认为我可以提供帮助。

TL-DR:

您需要将 &after=YOUR_AFTER_CODE 附加到您调用的 URL(例如: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(我假设您知道如何以编程方式找到它)和一些类似于我的 url 来获取 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'))

希望这对您有所帮助!

关于python-3.x - python : Facebook Graph API - pagination request using facebook-sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com