Facebook应用Messenger Webhook订阅1-2分钟失效的权限排查咨询
Facebook Messenger Webhook订阅自动失效问题排查方案
1. 优先确认Access Token类型与有效性
- 必须使用长期页面访问令牌,用户令牌会因会话过期导致订阅失效。调用以下接口验证令牌:
检查GET /debug_token?input_token={{page_token}}&access_token={{app_id}}|{{app_secret}}expires_at是否为长期有效(无过期时间或60天后过期),同时确认scopes包含pages_manage_engagement和pages_messaging。
2. 检查Webhook端点的响应能力
- Facebook会定期发送心跳请求验证端点可用性,若端点未在5秒内返回200 OK,会自动取消订阅。
- 查看端点日志,确认所有来自Facebook的POST请求都被正确处理,无超时或错误响应。
3. 修正API调用方式与版本
- 你使用的v2.8版本过于老旧,存在兼容性风险,建议升级到v18.0+的稳定版本。
- 订阅需用POST请求(GET仅用于查询状态),正确调用示例:
POST /v18.0/{{page_id}}/subscribed_apps Headers: Content-Type: application/json Body: { "subscribed_fields": ["messages", "messaging_postbacks", "messaging_optins", "feed"] }
4. 验证权限的审核状态
- 确认
pages_manage_engagement和pages_messaging是已通过应用审核的权限,而非仅开发模式下的测试权限。测试权限仅对添加的测试用户/页面生效,且存在临时限制。 - 若应用处于开发模式,建议切换至公开模式(需确保所有必要权限通过审核)。
5. 确认页面与应用的绑定关系
- 检查目标页面的“设置-高级-应用”选项,确认你的应用已绑定且未被管理员撤销访问权限。
内容的提问来源于stack exchange,提问作者sonnv0812
相关产品推荐
相关产品推荐

