Facebook Messenger bot未发布到webhook
问题描述:
我一直在构建Facebook Messenger bot,并且无法在我的服务器上的webhook上接收Messenger消息。我一直在使用发送API & Webhooks几个星期,并且直到今天都没有麻烦来回发送消息给用户。我可以通过Facebook开发者控制台验证webhook,并且可以通过对我的/webhook
路由进行GET调用来看到验证。但是,当我从我的个人帐户发送我的机器人(应该POST到/webhook
)时,我没有看到任何消息数据被转发到我的服务器。路线永远不会被击中。我要发送的页面已订阅到Facebook开发人员控制台中的应用程序。什么奇怪的是,我可以手动打/webhook
用卷曲的消息:Facebook Messenger bot未发布到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处于脱机状态,则需要几分钟时间才能完成所有消息。