Facebook Messenger 平台 - 设置您的 Webhook - 错误 - 写入 EPROTO 1975128920 - third_party/boringssl/src/ssl/tls_record.cc:242

Facebook Mesenger Platform - Setting Up Your Webhook - Error - write EPROTO 1975128920 - third_party/boringssl/src/ssl/tls_record.cc:242

我正在尝试使用 facebook 信使问题。我被困在 FB 建议创建一个快速节点 js 服务器应用程序来验证网络挂钩的地方。

在某一时刻,文档建议执行此命令。

> curl --insecure -X GET
> "http://localhost:1337/webhook?hub.verify_token=<TOKENSTRING>&hub.challenge=CHALLENGE_ACCEPTED&hub.mode=subscribe"

我遇到这样的错误

在 visual studio curl 请求中。

write EPROTO 1975128920:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

直接卷曲

Forbidden

最后没找到直接的解决办法,发现是这行代码的问题

app.listen(process.env.PORT || 1337, () => console.log('webhook is listening' + process.env.PORT));

出于某种原因,在我的计算机上,默认端口未定义。然而,代码并没有跳过并选择 1337。它继续 运行 未定义端口上的服务器,我猜基本上没有 运行 连接它。

我把代码改成了这个。

app.listen(1337, () => console.log('webhook is listening' + process.env.PORT));

这解决了问题。

我已将完整代码的副本放在这里 - https://github.com/Jay-study-nildana/FBMessengerWebHook,如果有人想使用它。

另外,看看这个 curl 命令

curl --insecure -X GET "http://localhost:1337/webhook?hub.verify_token=<token>&hub.challenge=CHALLENGE_ACCEPTED&hub.mode=subscribe"

我还认为 --insecure 会有所不同,因为默认情况下,至少在我的计算机上,curl 一直在寻找端点的 https 版本,这在代码开发时根本不可用。