19

最后,Facebook 为其 messenger 推出了 API for their messenger API。这将允许我们创建聊天机器人。

在入门指南中,我需要设置 webhook。这需要驻留在特定域中的网络服务器,并且必须使用 SSL 连接。

我有具有静态 IP 的 VPS。我制作了自签名证书并创建了使用此证书的简单 Node JS Web 服务器。首先,我需要验证 webhook 的令牌:

app.get('/webhook/', function (req, res) {
  if (req.query['hub.verify_token'] === '<validation_token>') {
      res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

然后我启动了这个服务器应用程序并在我的 facebook 应用程序仪表板中单击验证并保存按钮。

它向我抛出了这个错误消息:

截屏

这意味着Facebook 不想接受我的自签名证书

这带来了几个问题:

我是否需要使用仅由证书颁发机构提供的SSL 证书才能使用 facebook messenger?

使用 Facebook Messenger 比 Telegram 困难得多。

4

6 回答 6

9

对于只是测试,您可以使用 localtunnel。https://localtunnel.me/

于 2016-04-13T14:03:02.633 回答
7

我将我的机器人部署到 Heroku,他们很容易提供 HTTPS 连接。对于本地开发,我使用ngrok,它也支持 HTTPS 转发。

恩格罗克

对于新手,我为那些想要开始使用 Facebook Messenger (Bot) API 的人编写了这个小教程,从第一行代码到 Heroku 部署。我发现 Heroku 非常适合这样的项目,因为我使用了 Python flask+ gunicorn,我部署所需的一切确实需要 5 分钟来设置,其余的由 Heroku 负责。

于 2016-09-14T00:41:13.120 回答
7

您可以使用cloudflare来获取 https 而不是自签名。或者您可以使用https://letsencrypt.org

于 2016-04-13T06:06:07.680 回答
3

从这里提取:

从 v2.5 开始,新的 webhook 订阅必须使用安全的 HTTPS 回调 URL。在 Graph API 的下一版本中,我们将停止向非 HTTPS 回调 URL 发送更新。
如果您需要有关为回调 URL 设置 HTTPS 的更多信息,请查看 Let's Encrypt 的入门指南和 Digicert 的 SSL 证书安装说明。

这里开始,就像@saturngod 说的:

facebook 不接受自签名证书。Letsencrypt证书完美运行。

于 2016-04-13T22:54:20.503 回答
0

要验证网络挂钩使用:-

$_REQUEST["hub_token"] and $_REQUEST["hub_challenge"];

首先验证令牌到您的页面令牌,然后打印:-

echo $_REQUEST["hub_challenge"];
exit;
于 2016-06-01T07:51:21.243 回答
0

我在 Apache 上使用 Comodo SSL 时遇到了同样的错误。在我的情况下,我错过了 SSLCertificateChainFile,只需要在我的虚拟主机配置中上传该捆绑文件和文件路径并重新加载 apache。这是安装从 ssls.com https://helpdesk.ssls.com/hc/en-us/articles/203482651-How-to-install-a-SSL-certificate-on-Apache购买的 comodo SSL 的链接。

于 2017-08-04T04:33:56.990 回答