Я установил бот-телеграмму с помощью python -telegram-bot и хочу разместить ее на Heroku. Проблема в том, что код сервера всегда приводит к ошибке, утверждая, что запущен другой экземпляр бота (которого нет).
Я создал Procfile
примерно так:
web: python main.py
и убедился, что requirements.txt
обновлен.
main.py:
# ... handlers ...
updater = Updater(token=os.environ['TOKEN'], use_context=True)
dispatcher = updater.dispatcher
logging.basicConfig(format='%(asctime)s %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
dispatcher.add_handler(CommandHandler('help', help))
print('Started Bot. Listening for messages...')
updater.start_polling()
updater.idle()
Вот журнал ошибок:
2020-04-24T16:20:34.096562+00:00 app[web.1]: 2020-04-24 16:20:34,095 telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2020-04-24T16:20:34.096564+00:00 app[web.1]: Traceback (most recent call last):
2020-04-24T16:20:34.096564+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/ext/updater.py", line 380, in _network_loop_retry
2020-04-24T16:20:34.096565+00:00 app[web.1]: if not action_cb():
2020-04-24T16:20:34.096565+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/ext/updater.py", line 341, in polling_action_cb
2020-04-24T16:20:34.096609+00:00 app[web.1]: allowed_updates=allowed_updates)
2020-04-24T16:20:34.096610+00:00 app[web.1]: File "<decorator-gen-31>", line 2, in get_updates
2020-04-24T16:20:34.096610+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/bot.py", line 70, in decorator
2020-04-24T16:20:34.096611+00:00 app[web.1]: result = func(*args, **kwargs)
2020-04-24T16:20:34.096611+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/bot.py", line 2136, in get_updates
2020-04-24T16:20:34.096612+00:00 app[web.1]: result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
2020-04-24T16:20:34.096612+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/utils/request.py", line 334, in post
2020-04-24T16:20:34.096612+00:00 app[web.1]: **urlopen_kwargs)
2020-04-24T16:20:34.096613+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/telegram/utils/request.py", line 249, in _request_wrapper
2020-04-24T16:20:34.096613+00:00 app[web.1]: raise Conflict(message)
2020-04-24T16:20:34.096946+00:00 app[web.1]: telegram.error.Conflict: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
2020-04-24T16:20:34.523514+00:00 heroku[web.1]: State changed from starting to crashed
Я убедился, что остановил все другие запущенные main.py
*.
Так как мне правильно разместить экземпляр бота на Heroku?