【发布时间】:2017-06-21 19:54:04
【问题描述】:
我一直在构建 Facebook Messenger 机器人,但在我服务器上的 webhook 上接收来自 Messenger 的消息时遇到问题。几周以来,我一直在使用 Send API 和 Webhooks,直到今天,我一直在向用户来回发送消息。我能够从 Facebook 开发者控制台验证 webhook,并且我可以看到验证通过对我的/webhook 路由的 GET 调用进行。但是,当我从我的个人帐户向我的机器人(应该 POST 到 /webhook)发送消息时,我看不到任何消息数据被转发到我的服务器。路线永远不会被击中。我发送到的页面订阅了 Facebook 开发者控制台中的应用程序。奇怪的是,我可以使用 curl 手动点击/webhook 发送消息:
curl -i -X POST -H 'Content-Type: application/json' -d
'{"object":"page","entry":
[{"id":43674671559,"time":1460620433256,"messaging":[{"sender":
{"id":MY_ACTUAL_FACEBOOK_USER_ID},"recipient":
{"id":MY_PAGE_ID},"timestamp":1460620433123,"message":{"mid":"mid.1460620432888:f8e3412003d2d1cd93","seq":12604,"text":"Testing
Chat Bot .."}}]}]}' "https://XXXXX.ngrok.io/webhook"
我正在使用 ngrok 将呼叫转发到我的本地主机。上面的curl 命令工作正常,这意味着我可以在/webhook 看到在我的服务器上传递的消息。对我来说,这表明问题来自 Facebook,这意味着它超出了我的控制范围。有什么我错过的吗?我还能检查什么,为什么会默默地失败?
【问题讨论】:
标签: facebook-messenger facebook-send-api