如果 Facebook Messenger 平台上发生 EAI_AGAIN 错误,我该如何解决?

Posted

技术标签:

【中文标题】如果 Facebook Messenger 平台上发生 EAI_AGAIN 错误,我该如何解决?【英文标题】:How can I resolve, if EAI_AGAIN error happens on facebook messenger platform? 【发布时间】:2016-10-15 03:53:13 【问题描述】:

我们用于 facebook messenger 平台的 Node.js 应用程序引发了以下错误。 我们使用“请求”模块连接到 facebook graph api,模块抛出了这个错误。在我发现问题后大约 1 小时,问题就解决了。所以现在它正在工作,但我担心它什么时候会再次发生。你能教我这个问题吗?如果有任何解决方案?

 Error: getaddrinfo EAI_AGAIN graph.facebook.com:443
    at Object.exports._errnoException (util.js:949:11)
    at errnoException (dns.js:33:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
  code: 'EAI_AGAIN',
  errno: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'graph.facebook.com',
  host: 'graph.facebook.com',
  port: 443 

【问题讨论】:

【参考方案1】:

简答: 当您失去与 DNS 服务器的连接或 DNS 设置错误(包括但不限于完全或部分断开与 Internet 的连接)时,就会发生这种情况。 即:请检查您的电缆或 WiFi 连接或您的互联网提供商是否存在(临时)问题。

详情: 发生这种情况时,我可以在调试器call stack 中看到系统函数getaddrinfo 失败。因此,似乎微不足道的原因是 - 系统无法将主机名映射到 IP(在您的情况下,找不到主机名“graph.facebook.com”)

确实,当我尝试 ping 想要访问的主机名时,我得到了与 ping 未知主机一样的 ping 错误:

u@h:~$ ping someunknownhost.xyzdomain
ping: unknown host someunknownhost.xyzdomain

另外,当我的互联网连接恢复并且我可以 ping 主机时,node.js 的问题也消失了。

【讨论】:

以上是关于如果 Facebook Messenger 平台上发生 EAI_AGAIN 错误,我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Messenger 平台 ngrok

Facebook Messenger 平台发送本地图片附件

Facebook Messenger 平台/机器人欢迎配置的奇怪错误

如何访问 Messenger 平台应用仪表板?

来自 Facebook Messenger 机器人对话的 API 身份验证

在 Facebook Messenger 上分享