Facebook Messenger 聊天机器人显示“检查您的连接并重试”。

Posted

技术标签:

【中文标题】Facebook Messenger 聊天机器人显示“检查您的连接并重试”。【英文标题】:Facebook messenger chatbot shows "Check your connection and try again." 【发布时间】:2017-03-25 15:43:12 【问题描述】:

最近,我试图为自己构建一个机器人。当我使用 ngrok 在本地测试我的机器人时,它可以完美运行,但是当我部署到 AWS 时,我开始偶尔看到下面捕获的错误,并导致没有从 Facebook 向我的服务器发送 webhook 请求。我不知道可能出什么问题。我也用 tcpflow 检查了发送到我的服务器的请求,但是运气不好,看起来 Facebook 只是没有将那个特定的请求发送到我的服务器。这是一个非常奇怪的问题,在我的机器人对话流程的任何特定点都不会发生。我总是需要重复我的回答或回发才能让它发挥作用。

一些基本的服务器信息(不知道这是否重要):

    可用区:ap-southeast-1b 类型:t2.micro CPU 使用率(当时):4%

如果有人能解开我的谜团,我将不胜感激。谢谢。

仅供参考,我已将此事报告给 Facebook:https://developers.facebook.com/bugs/1825253057751227

【问题讨论】:

我刚刚用谷歌搜索了这个错误,它与这个不同吗:android.stackexchange.com/a/100886 您是否在您的 aws 实例上使用静态 IP? VPC? 我正在为 AWS 使用弹性 IP。实际上,我向 Facebook 报告了这个问题,他们承认这是一个有效的错误并指派人员修复它,虽然还没有修复 AWS 不是问题。 好吧,Facebook 会处理它吗?如果是这样,我相信他们最适合为您解决这件事。 【参考方案1】:

您的 webhook 服务器必须通过有效的 https(非自签名)工作。

我的建议 - 将 https 添加到 webhook 服务器,使用 cloudflare service(它是免费的),或者使用 letsencrypt 获取免费的有效证书

【讨论】:

我实际上正在使用letsencrypt,但仍然遇到同样的问题:( 您能否通过 curl 或 PostMaster 等客户端应用测试对 aws 的请求。您是否看到此测试对 aws 的请求? 是的,这个错误是偶发的,一般我可以在AWS上看到请求,只是有时会出现错误【参考方案2】:

如果您的错误是偶然的,我建议将您的实例大小从 Micro 提高到至少 Medium 或 Large 并使其成为 Dedicated 实例。运行letsencrypt客户端所需的资源,加上你的机器人流量和嘈杂的邻居可能会克服共享的微实例。

【讨论】:

以上是关于Facebook Messenger 聊天机器人显示“检查您的连接并重试”。的主要内容,如果未能解决你的问题,请参考以下文章

Watson Assistant - Facebook Messenger 中的选项响应类型

Facebook Messenger 检测关闭 web 视图(移动)

Facebook Messenger 嵌套持久菜单错误

推送通知作为与 Facebook Messenger Bot 的首次交互?

Facebook Messenger Bot 使用回发按钮共享结构化消息

Facebook Messenger 的 Webhook 不验证 Laravel5.4