php - 电报 BOT - setWebhook 不工作

标签 php ssl webhooks telegram-bot

我是创建电报机器人的新手,我真的不知道从哪里开始。 我只知道 PHP。

为了简单起见,我有一个安装了 Windows Server 2008 R2 的 VPS,并且我使用了一个自签名证书

openssl req -newkey rsa:2048 -sha256 -nodes -keyout server.key -x509 -days 365 -out server.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"

然后我使用

将 PEM 转换为 CER
openssl x509 -inform PEM -in server.pem -outform DER -out server.cer

我已经安装了 WAMP 服务器并将其设置为使用 server.cer 和 server.key 作为证书和 key ,然后我测试了 HTTPS(443) 并且它有效。

然后我在 chrome 上安装了一个 REST 客户端,并按照官方文档所述将 bot.php 和 PEM 文件的 URL 作为多部分表单数据发送。

现在我得到这个错误:

{
    ok: false,
    error_code: 400,
    description: "Error: Bad webhook: Posix Error: Success: getaddrinfo: Name or service not known"
}

而且...我现在在这里! :|向你寻求帮助 这是什么问题,我应该如何解决这个问题

提前致谢:)

注意:我没有域名我正在使用我的 VPS 的 IP

最佳答案

Telegram 需要您的的有效 ssl 证书。

我会告诉你我是如何解决这个问题的。

您可以使用 NGROK,它可以将本地 ip 公开到启用了临时域和 https 的 internet。

安装链接 - https://ngrok.com/

安装后,只需在控制台中运行即可:

ngrok http 127.0.0.1:8003

(ofc 使用 WAMP 配置中的 ipport)

您将获得一个启用 https 的免费临时域(看起来像 https://f9eb2f08.ngrok.io)。

然后将新域的 url 设置为电报 webhook_url,只要 NGROK 正在运行,机器人的请求就会转到您的本地服务器。

关于php - 电报 BOT - setWebhook 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421731/

相关文章:

php - MySQL - 设计问题

php - 安全地将数据插入 MySQL 表并打印

c++ - 如何在 QT Windows 应用程序中启用 SSL?

python - 创建 CA 证书 (.pem) 文件以连接到 crate 数据库

javascript - Discord webhook 速率限制

php - 使用外部脚本时未正确加载 WP

php - 如何制作重复的 xml 节点并在其中保存不同的值而不覆盖

php - 有关 SSL 和 apache 的信息

javascript - 验证 Facebook X-Hub-签名

push-notification - Google 日历推送通知 - 发送到源本身的通知