Facebook Messenger聊天机器人显示“检查您的连接,然后再试一次”。

最近,我试图为自己build立一个机器人。 当我使用ngrok在本地testing我的机器人时,它的工作是完美的,但是当我部署到AWS时,我偶尔发现了错误,并且没有从Facebook发送到我的服务器的webhook请求。 我不知道可能会出现什么问题。 我也检查了使用tcpflow进入服务器的请求,但没有运气,似乎Facebook只是没有发送特定的请求到我的服务器。 这是一个非常奇怪的问题,发生在我的机器人对话stream程的特定点上。 我总是需要重复我的回答或我的回传为了得到它的工作。

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

  1. 可用区域:ap-southeast-1b
  2. types:t2.micro
  3. CPU使用率(当时):4%

我真的很感激,如果有人能解决我的神秘。 谢谢。

仅供参考,我已经向Facebook报告: https : //developers.facebook.com/bugs/1825253057751227

连接错误的例子

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

我的build议 – 将https添加到webhook服务器,使用cloudflare服务 (免费),或使用letsencrypt获得免费的有效证书

如果你的错误是偶然的,我build议你将实例的大小从Micro改为至lessMedium或Large,并将它变成一个Dedicated实例。 运行letsencrypt客户端所需的资源以及您的botstream量和嘈杂的邻居可能会克服共享的微型实例。