我一直在构建一个Facebook Messenger僵尸程序,并且无法在我服务器上的webhook上接收来自Messenger的消息。我一直在使用Send API& Webhooks持续数周,直到今天才向用户发送消息。我可以从Facebook Developer Console验证webhook,我可以看到通过GET调用我/webhook
路由时的验证。但是,当我从我的个人帐户向我的机器人(应该发布到/webhook
)发送消息时,我看不到任何消息数据被转发到我的服务器。路线永远不会受到打击。我要发送的页面是在Facebook Developer Console中订阅的应用程序。奇怪的是,我可以使用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将呼叫转发到我的localhost。上面的curl
命令工作正常,这意味着我可以在/webhook
的服务器上看到消息。对我而言,这表明问题来自Facebook,这意味着它不受我的控制。有什么我错过的吗?我还能检查什么,以及为什么这会失败?
答案 0 :(得分:0)
如上所述的问题最有可能发生在Messenger
- > settings
- > webhooks
窗口在底部,您必须选择Page
订阅应用程序(webhook)。
此外,有时如果您发送消息并且webhook处于脱机状态,则所有消息都需要几分钟才能完成。