我是创建电报机器人的新手,我真的不知道从哪里开始。 我只知道 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 转换为 CERopenssl 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
配置中的 ip
和 port
)
您将获得一个启用 https 的免费临时域(看起来像 https://f9eb2f08.ngrok.io
)。
然后将新域的 url 设置为电报 webhook_url,只要 NGROK 正在运行,机器人的请求就会转到您的本地服务器。
关于php - 电报 BOT - setWebhook 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421731/