我一直在构建一个 Facebook Messenger 机器人,但在我服务器上的 webhook 上接收来自 Messenger 的消息时遇到问题。我使用 Send API 和 Webhooks 已经有几个星期了,直到今天,我还没有遇到向用户来回发送消息的问题。我能够从 Facebook Developer Console 验证 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,这意味着它超出了我的控制范围。有什么我错过的吗?我还能检查什么,为什么会无提示地失败?
最佳答案
上述问题很可能发生在 Messenger
-> settings
-> webhooks
窗口中,您必须在底部选择一个Page
订阅应用程序(webhook)。
此外,有时如果您发送消息而 webhook 处于离线状态,则所有消息都需要几分钟才能通过。
关于facebook-messenger - Facebook Messenger 机器人不发布到 webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685166/