Telegram Bot(ngrok) 部署到heroku

Posted

技术标签:

【中文标题】Telegram Bot(ngrok) 部署到heroku【英文标题】:Telegram Bot(ngrok) deploy to heroku 【发布时间】:2022-01-20 20:51:55 【问题描述】:

我使用烧瓶创建了一个电报机器人,它与 ngrok 完全兼容,但我想将它部署到 Heroku 以供终身使用。

下面是我的 webhook 函数,我在其中使用了这个 ngrok url,但我想使用失败的 heroku url。 谁能帮帮我?

@app.route("/setwebhook")
def setwebhook():   
    url = "https://f0b7-180-151-17-204.ngrok.io" 
    s = requests.get("https://api.telegram.org/bot/setwebhook?url=".format(bot_token,url))

    if s:
        return "Connection established"
    else:
        return "Connection failed"

if __name__ == "__main__":
    app.run(debug="True")

【问题讨论】:

您在日志中遇到了哪些错误?我认为您错过了 PORT,ngrok URL 也需要替换为您的应用程序的 Heroku URL。它是 Flask 应用吗? 是的,它是一个烧瓶应用程序,您可以在这里查看我的完整代码github.com/kaniket7209/telegram-bot-using-ngrok--pep-nik-bot,它与 ngrok 一起工作正常,但我不明白为什么用 heroku url 更改 url 与电报的连接无法建立,但应用程序可以工作... 谁能帮我使用heroku url将此应用程序部署到heroku...我的完整代码链接在这里github.com/kaniket7209/telegram-bot-using-ngrok--pep-nik-bot 【参考方案1】:

在 Heroku 上,Flask 应用应该绑定到 $PORT

p = int(os.environ.get("PORT", 5000))
app.run(debug=True, port=p, host='0.0.0.0')

【讨论】:

以上是关于Telegram Bot(ngrok) 部署到heroku的主要内容,如果未能解决你的问题,请参考以下文章

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

如何让 ngrok 工作的 Telegram webhook?

Telegram Webhook 和 Ngrok 无法正常工作

我的 Telegram Bot 无法读取另一个 Telegram Bot 发送的消息

使用python-telegram-bot模块转发telegram机器人消息到钉钉平台

Telegram 通过 bot api 将成员添加到频道