在Heroku上部署Python Telegram机器人。

问题描述 投票:0回答:1

我正试图在heroku上部署我的python telegram机器人。一切都建立得很好,heroku也说部署成功。然而,当我尝试在telegram中部署机器人时,它却无法工作。我把部署代码附在下面。谁能帮帮我?谢谢。我的Procfile包含以下内容:web:python3 encouragements.py。

`import os
TOKEN = "Token"
PORT = int(os.environ.get('PORT', '5000'))
updater = Updater("Token")

updater.start_webhook(listen="0.0.0.0",
                    port=PORT,
                    url_path="Token")
updater.bot.setWebhook("https://xxx.herokuapp.com/" + "Token")
updater.idle()`
heroku python-telegram-bot
1个回答
1
投票

我发现这篇文章在Heroku上部署Telegram机器人时很有帮助。创建Telegram机器人并将其部署到Heroku上 (通过对比文档,确保代码是最新的) 12.0版本指南)

根据上面提供的文章,我尝试用下面的设置重现你的情况。

encouragements.py:

from telegram.ext import Updater, CommandHandler, CallbackContext
from telegram import Update
import os

TOKEN = ""
HEROKU_APP_NAME=""

# def run(updater):
    # updater.start_polling()
def run(updater):
    PORT = int(os.environ.get("PORT", "8443"))
    updater.start_webhook(listen="0.0.0.0",
                          port=PORT,
                          url_path=TOKEN)
    updater.bot.set_webhook("https://{}.herokuapp.com/{}".format(HEROKU_APP_NAME, TOKEN))

def start_handler(update: Update, context: CallbackContext):
    update.message.reply_text("Hello from Python!\nPress /random to get random number")


if __name__ == '__main__':
    updater = Updater(TOKEN, use_context=True)
    updater.dispatcher.add_handler(CommandHandler("start", start_handler))
    run(updater)

Pipfile:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
python-telegram-bot = "*"

[requires]
python_version = "3.7"

Procfile

web: python encouragements.py

而telegram机器人的确是在响应于 /start 消息。我在部署到Heroku的时候,按照这篇文章来做。https:/devcenter.heroku.comarticlesgetting-started-with-nodejs。

我还建议检查Heroku方面的情况。

heroku logs -t --app <your-heroku-app-name>

日志应该会告诉你,你的标记是否正确,你的依赖关系是否正确加载,你的代码是否在运行时没有产生任何错误。

如果成功了,请告诉我 :)

© www.soinside.com 2019 - 2024. All rights reserved.