Meta(Facebook)API问题:WhatsApp Webhook订阅错误(#100)
解决Meta WhatsApp API订阅后无法覆盖Callback URI的错误
问题核心
调用/subscribed_apps接口订阅WhatsApp Business Account(WABA)后,尝试传入override_callback_uri修改回调地址时,返回错误(#100) Before override the current callback uri, your app must be subscribed to receive messages for WhatsApp Business Account,但手动在Meta仪表板配置后API调用恢复正常。
根源分析
- 订阅未真正生效:第一次调用订阅接口后,未完成Webhook的验证流程,Meta后台判定应用未完成订阅。
- API流程更新:Meta调整了权限验证逻辑,现在要求订阅后必须通过Webhook验证,才能修改回调地址。
- 异步处理延迟:订阅接口返回成功后,Meta后台可能仍在异步处理订阅状态,直接调用修改接口会触发错误。
解决方案
1. 确认订阅接口调用结果
调用订阅接口后,必须校验返回结果为{"success": true},不能仅依赖调用成功的状态码。
curl -X POST "https://graph.facebook.com/{{Version}}/{{WABA-ID}}/subscribed_apps" \ -H "Authorization: Bearer {{ACCESS_TOKEN}}"
正确返回示例:
{"success": true}
2. 强制处理Webhook验证请求
订阅后,Meta会立即向目标override_callback_uri发送GET验证请求,参数格式如下:
GET {{url}}?hub.mode=subscribe&hub.challenge=123456&hub.verify_token={{token}}
你的服务必须直接返回hub.challenge的数值,否则Meta会标记验证失败,订阅状态无法激活。
3. 严格按顺序执行流程
正确的API操作顺序:
- 调用订阅接口,确认返回成功
- 等待并处理Meta的Webhook验证GET请求
- 调用带
override_callback_uri的订阅接口修改回调地址
4. 校验Access Token权限
确保使用的access_token满足两个条件:
- 拥有
whatsapp_business_management权限 - token所属账号在目标WABA中是管理员或运营者角色
批量处理建议
针对多应用场景,可自动化以下流程:
- 批量生成每个应用的
verify_token和专属callback URL - 循环调用订阅接口并校验返回结果
- 在服务中统一处理Webhook验证请求(可通过路由匹配
hub.mode=subscribe参数) - 验证通过后自动触发
override_callback_uri的修改请求
内容的提问来源于stack exchange,提问作者Crazynds
相关产品推荐
相关产品推荐

