Python:Facebook Graph API - 使用 facebook-sdk 的分页请求

2024-04-28

我正在尝试向 Facebook 查询不同的信息,例如 - 好友列表。它工作得很好,但当然它只能给出有限数量的结果。如何获取下一批结果?

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 值 - 但我该把它放在哪里呢?


我正在通过以下方式探索 Facebook Graph APIfacepyPython 库(也适用于 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 的 get 请求(请参阅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'))

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:Facebook Graph API - 使用 facebook-sdk 的分页请求 的相关文章

  • facebook graph api 调用 python 中的 appsecret_proof

    在 python 中使用 appsecret proof 参数进行图形 api 调用的正确方法是什么 有没有允许这样的图书馆 我试图使用 python for facebook 库 但文档实际上不存在 所以我无法弄清楚 您可以使用以下方法来
  • 如何在不进行列表搜索的情况下知道是否喜欢该帖子

    我尝试使用 fql 查询来获取 json 响应 我使用此代码来执行此操作 String postid jsonObject getString id String query SELECT likes user likes FROM str
  • 更改 ag-grid 上的页面和缓存块大小会导致项目无限加载

    我希望使用 ag grid 的 服务器端 模式重新获取每个页面的数据 为了做到这一点 我将 maxBlocksInCache 1 和 cacheBlockSize 设置为等于每页的项目数 到这里为止一切正常 现在 当我更改每页的项目数时 网
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • 列表值意外变化[重复]

    这个问题在这里已经有答案了 为什么是这个列表r即使我只是想更改列表 也会被更改v 即使它们不指向相同的内存位置 r v list r 2 2 1 2 8 3 10 2 1 8 4 2 4 6 4 for c a in enumerate r
  • Python 3 如何知道如何 pickle 扩展类型,尤其是 Numpy 数组?

    Numpy 数组是扩展类型 也称为使用 C API 扩展定义的 声明了 Python 解释器范围之外的附加字段 例如data属性 这是一个Buffer Structure 如 Numpy 中所述阵列接口 https docs scipy o
  • xlwings: 删除一个列 | Excel 中的行

    如何删除 Excel 中的一行 wb xw Book Shipment xlsx wb sheets Page1 1 range 1 1 clear clear 用于删除内容 我想删除该行 我很惊讶 clear 函数有效 但 delete
  • iPhone UITableView 分页结果

    对从服务器拉取的大量结果进行分页的最佳方法是什么 就服务器而言 我可以抵消和限制结果 因此我一次只能提取 25 个结果 但是允许用户查看更多结果而不需要像应用商店一样不断向下滚动不断增长的列表的最佳方式是什么应用程序 谢谢 豪伊 要在列表底
  • 现在与出生日期之间的年、月、日、分钟差异

    import datetime birthday datetime datetime 1996 8 15 differnce datetime datetime now birthday This returns a timedelta o
  • 如何在Python中获取声音级别?

    对于我正在进行的项目 我需要获取麦克风的实时分贝级别 我见过阴谋家 Print out realtime audio volume as ascii bars import sounddevice as sd import numpy as
  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • 初始化 dask 分布式工作线程的状态

    我正在尝试做类似的事情 resource MyResource def fn x something dosemthing x resource return something client Client results client m
  • 将 github 上的包安装到 Spyder 中

    我一直在尝试安装并导入mpl finance来自 github 的包 在我的 Spyder 环境中没有成功 我努力了 pip install e git https github com matplotlib mpl finance git
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • 类型错误:只能使用标量值执行操作

    如果您能让我知道如何为所提供的表格绘制一些信息丰富的图表 我将不胜感激here https www iasplus com en resources ifrs topics use of ifrs 例如 我需要一个名为 国内非上市公司 非上
  • Oracle查询结果分页无TABLE FULL SCAN数据访问方式

    stackoverflow 上有很多关于如何正确执行分页的问题 对于 Oracle 来说 最流行的答案是这样的 select from select row rownum rownum from select from some table
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐