【问题标题】:Facebook Messenger bot not posting to webhookFacebook Messenger bot 未发布到 webhook
【发布时间】: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


    【解决方案1】:

    上述问题很可能出现在Messenger -> settings -> webhooks 窗口中,您必须在底部选择一个Page 来订阅应用程序(webhook)。

    此外,有时如果您发送消息并且 webhook 处于离线状态,则所有消息都需要几分钟才能通过。

    【讨论】:

    • 只是想为像我这样遇到这种情况的人添加这个,我花了大约 20 分钟等待all the messages to come through .. 我的情况是当我发送500 HTTP 错误以响应@987654327 @route .. Facebook 只是等待这段时间。
    • @AhmedShendy 你应该总是发送 200 状态到你收到消息的 facebook。然后,如果您在内部遇到问题,请自己处理。至少我是这样做的。
    • 昨天对我来说非常完美......我一直使用所有 200 状态的日志记录,并通过日志记录和预期输出而不是 HTTP 状态代码从错误中吸取教训。
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2016-08-13
    • 2016-08-09
    • 2018-09-03
    • 2016-08-16
    相关资源
    最近更新 更多