Facebook GraphAPI查询主页帖子总数total_count仅返回25如何解决
问题原因
应用处于开发模式是你遇到total_count被截断到25的核心原因。
Meta对开发模式下的GraphAPI请求默认设置了数据返回上限,公开内容类查询最多仅返回最近25条匹配结果,对应的summary统计值也会同步被截断,不会返回真实总数量。
解决方法
- 首先补全应用权限配置:你的access_token需要申请
pages_read_engagement、pages_show_list两个权限,同时使用你作为主页管理员的Facebook账号,给当前应用授权目标主页的访问权限,开发模式下只要授权完成,访问你自己管理的主页内容不受公开数据查询限制,也不会有每年600条的上限约束。 - 调整API调用逻辑:不要依赖
limit=0返回的summary.total_count,该统计值在开发模式下默认被截断。你可以将limit参数调整为100,通过分页遍历的方式拉取所有已发布帖子,自行累加统计总条数,该结果和官方真实数据一致。 - 官方校验方案:你可以直接登录Facebook主页管理后台,进入「内容」板块筛选所有已发布帖子,后台会直接展示总条数,这个数值是100%准确的,可直接用来校验你的爬取结果。
代码调整参考
你可以将原有请求调整为如下逻辑,分页拉取全量数据:
from pyfacebook import GraphAPI api = GraphAPI(access_token="{access-token}") all_posts = [] # 首次请求 response = api.get_object('{page-id}/published_posts', since='2011-11-22', limit=100) all_posts.extend(response['data']) # 遍历分页获取全量数据 while 'paging' in response and 'next' in response['paging']: next_page = response['paging']['next'] response = api._request(method="GET", path=next_page) all_posts.extend(response['data']) # 统计真实总条数 total_count = len(all_posts) print(total_count)
内容的提问来源于stack exchange,提问作者Hmm
相关产品推荐
相关产品推荐

