Telegram Webhook 和 Ngrok 无法正常工作

Posted

技术标签:

【中文标题】Telegram Webhook 和 Ngrok 无法正常工作【英文标题】:Telegram Webhook And Ngrok Not Working Correctly 【发布时间】:2020-03-08 06:36:57 【问题描述】:

我有一个用 botman 制作的电报机器人,当我将它上传到网站上时它还可以并且运行良好,但是为了开发它并不是一个好主意,因为许多请求发送到服务器 ant 它的块马上。

为了开发,我想使用 ngrok,我将它安装在 Windows 上并在端口 8000 上为 botman 提供服务,然后使用

运行 ngrok
ngrok http 8000

它的作品:

你可以看到来自电报的连接正确接收

但问题是电报机器人没有响应。

我也试过了

 ngrok http 8000 -host-header=localhost:8000

我该怎么办?

谢谢;

【问题讨论】:

检查您的 php.ini 文件中是否有“curl.cainfo”选项。在此部分中,您必须提供证书文件的地址 哦,它的作品,非常感谢 不客气。 【参考方案1】:

为什么电报机器人没有响应??

敏感信息的传输通常在数字证书的掩护下完成。该证书将有助于向收件人确认发件人实际上是他们声称的身份。数字证书由证书颁发机构颁发。

当数字证书应用于服务器时,将在服务器上安装受信任的证书颁发机构及其根证书的列表。通过常规 HTTPS 进行的交易将恢复到此列表进行通信。但是,CURL 不遵守规则。您需要告诉 curl ca 根证书。

如何解决??

要解决该错误,您需要定义您的 CURL 证书颁发机构信息路径

为此,

    在此处下载最新的 curl 认可证书: https://curl.haxx.se/ca/cacert.pem

在 wampServer 中:

2.1 将文件放入C:\wamp64\bin\php\php*.*.*文件夹

用你的 wamp php 版本替换 *。

2.2 确保文件 mod_ssl.so 位于 C:\wamp64\bin\apache\apache(version)\modules 在 Apache 目录 C:\wamp64\bin\apache\apache2 内的 httpd.conf 中启用 mod_ssl。 4.27\配置

2.3 打开php.ini,找到这一行:

curl.cainfo

改成:

curl.cainfo = "C:\wamp64\bin\php\php*.*.*\cacert.pem"

在 XAMPP 服务器中

2.1 将文件放在:

 C:\xampp\php\extras\ssl\

2.2 在你的 php.ini 中把这一行放在这个部分(“c:\xampp\php\php.ini”):

;;;;;;;;;;;;;;;;;;;;
; php.ini Options  ;
;;;;;;;;;;;;;;;;;;;;

curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
    保存并关闭您的 php.ini。重新启动您的网络服务器并再次尝试您的请求。

【讨论】:

以上是关于Telegram Webhook 和 Ngrok 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

无效的 webhook url 在 Telegram bot 中指定错误

Telegram Bot(ngrok) 部署到heroku

Rails 和 Api.ai 的“找不到 404 帖子”

无法使用 ngrok 在本地测试我的 Telegram Bot

Ngrok 和 webhook

python Webhook使用自签名证书和Flask(使用python-telegram-bot库)