You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord BOT获取Facebook特定用户帖子的技术解决方案咨询

解决Facebook帖子获取+Discord Bot即时推送的方案

嘿,我之前在做类似的Discord Bot时也踩过Facebook API的权限大坑,结合你的情况给你几个可行的方向:

一、先明确目标:公共主页还是个人用户?

Facebook的API权限对公共主页和个人用户账号的限制天差地别,先搞清楚你要抓取的对象:

如果目标是公共Facebook主页

这是官方API能支持的唯一合法路径,解决你遇到的(#100) Pages Public Content Access错误步骤如下:

  1. 申请必要权限:
    你的Facebook应用必须通过审核获得Pages Public Content Access权限——在开发者后台的「应用审核」里提交用途说明(比如“用于将公共主页的帖子同步至Discord社区”),Facebook一般会通过这类非商用的合理申请。
  2. 正确生成调用凭证:
    • 方案A:使用App Token(最省心,无需用户授权)
      直接拼接你的APP_ID和APP_SECRET,格式为{APP_ID}|{APP_SECRET},用这个Token调用/{page-id}/posts端点即可获取公共帖子。
    • 方案B:使用用户AccessToken + App Secret Proof
      如果必须用用户授权的Token,需要生成appsecret_proof参数(HMAC-SHA256加密你的AccessToken,密钥为App Secret),以Node.js为例:
      const crypto = require('crypto');
      const appSecret = '你的AppSecret';
      const accessToken = '用户授权的AccessToken';
      const appSecretProof = crypto.createHmac('sha256', appSecret).update(accessToken).digest('hex');
      
      调用API时把appsecret_proof作为参数带上即可。
  3. 即时推送:配置Page Webhook
    等权限通过后,给目标主页配置Webhook,订阅feed字段的更新,这样有新帖子时Facebook会主动推送给你的Bot,完全不需要轮询,延迟极低。

如果目标是个人用户的帖子(非公共主页)

Facebook的隐私政策几乎完全限制了第三方应用获取非授权个人用户的帖子,官方API走不通,只能考虑以下非官方方案(注意合规性,避免频繁请求触发反爬):

  • 无头浏览器定时抓取:用Puppeteer或Playwright模拟浏览器访问用户的公开帖子页面,提取内容后推送到Discord。记得控制请求频率(比如每15分钟一次),避免被封IP。
  • RSS中转:部分工具可以将Facebook个人主页的公开内容转换成RSS feed,你可以让Bot订阅这个RSS源来获取更新,但延迟可能比Webhook高一点,但比IFTTT好很多。

二、避坑提醒

  • 不要尝试调用个人用户的/{user-id}/posts端点:现在这个端点只对用户自己授权的应用开放,第三方无法获取其他用户的帖子。
  • 始终使用最新版Graph API:旧版本的端点可能已经被废弃,权限规则也会变化。
  • 非官方抓取要谨慎:如果你的Bot是公开使用的,可能违反Facebook的服务条款,建议优先考虑公共主页的官方方案。

内容的提问来源于stack exchange,提问作者mafu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 11:02:33