如何获取Facebook公开页面帖子用于研究?Graph API使用遇阻求助
解决Facebook Graph API获取公开帖子的核心问题
一、获取Page ID的两种实用方法
- 从页面源代码提取:打开目标Facebook页面,右键查看页面源代码,直接搜索
page_id,找到的一串数字就是该页面的ID。 - 用Graph API搜索:在拥有基础访问权限后,发起GET请求:
返回的JSON数据里,https://graph.facebook.com/v18.0/search?q=目标页面名称&type=page&access_token=你的访问令牌id字段就是对应的Page ID。
二、解决授权问题的步骤
Facebook允许获取公开帖子,但需要走正确的权限流程:
- 注册Meta开发者账号,创建对应类型的应用(研究用途建议选Business类,权限范围更适配)。
- 申请
pages_read_engagement权限——这是获取页面公开帖子的核心权限。如果是学术研究,可以提交研究说明申请审核豁免,加快权限获取。 - 获取有效访问令牌:
- 先获取用户短期令牌,再通过以下请求交换成长期令牌:
https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id=你的APP_ID&client_secret=你的APP_SECRET&fb_exchange_token=短期令牌 - 把长期令牌关联到目标页面,得到页面专属的长期访问令牌(这种令牌权限更稳定,适合批量获取数据)。
- 先获取用户短期令牌,再通过以下请求交换成长期令牌:
- 测试请求:用拿到的Page ID和令牌发起帖子获取请求,示例:
https://graph.facebook.com/v18.0/目标Page ID/posts?access_token=你的页面令牌&fields=id,message,created_time
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

