我正在尝试将电报机器人推入 Heroku。这些是我的文件夹中的文件。
/new_bot
---/requirements.txt
---/Procfile #worker: python new_bot.py
---/init.py #empty
---/new_bot.py
---/.env
我的 procfile 没有任何 .txt 扩展名。 procfile里面是worker: python new_bot.py
我正在使用原子文本编辑器。
在我的requirements.txt文件夹中,有以下要求
requests
telegram
tornado>=5.1
new_bot.py 脚本在这里
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler, CallbackContext
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
import requests
PORT = int(os.environ.get('PORT', 443))
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
def hello(update, context):
update.message.reply_text('Hello! \U0001F600')
def main():
updater = Updater(TOKEN, use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("hello", hello))
updater.start_webhook(listen="0.0.0.0",
port=int(PORT),
url_path=TOKEN,
webhook_url='https://abc.herokuapp.com/' + TOKEN)
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
所以它成功构建了,我跑了并且做了heroku ps:scale worker=1
在我的 heroku CLI 中,成功部署它,结果显示:
2021-07-15T11:56:11.022397+00:00 heroku[worker.1]: State changed from crashed to starting
2021-07-15T11:56:15.944190+00:00 heroku[worker.1]: Starting process with command `python new_bot.py`
2021-07-15T11:56:17.093075+00:00 heroku[worker.1]: State changed from starting to up
2021-07-15T11:56:21.000000+00:00 app[api]: Build succeeded
2021-07-15T11:56:22.155897+00:00 app[worker.1]: 2.26.0
在我的 Heroku UI 上,我看到了这个
worker
python new_bot.py
ON
但是,我仍然不断收到此错误at=error code=H14 desc="No web processes running" method=GET
。我在 Stackoverflow 上看到了很多我必须使用的地方heroku ps:scale web=1
,这与我之前使用的命令不同heroku ps:scale worker=1
。我可以检查一下我在这里做错了什么以及如何补救吗?任何帮助将不胜感激。
编辑:大家好,我实际上已经发现了这个问题。这与
updater.start_webhook(listen="0.0.0.0",
port=int(PORT),
url_path=TOKEN,
webhook_url='https://abc.herokuapp.com/' + TOKEN)
无论如何,谢谢你的帮助!