【发布时间】:2021-09-09 13:02:35
【问题描述】:
我正在尝试在 Heroku 上部署这个 Telegram bot*:https://github.com/radinshayanfar/TGCopyBot。该机器人首先需要登录我的帐户,这需要一个登录代码发送到我已经登录的设备上。当从终端本地运行机器人时,它会请求用户输入,Enter code:,我在终端中输入登录代码并按 Enter,然后机器人继续工作。但是在 Heroku 上部署机器人并运行测功机后,它失败了,这显示在日志中:
2021-06-26T12:55:33.312544+00:00 app[worker.1]: Enter code:Traceback (most recent call last):
2021-06-26T12:55:33.312546+00:00 app[worker.1]: File "/app/app/main.py", line 77, in <module>
2021-06-26T12:55:33.312729+00:00 app[worker.1]: tg.login()
2021-06-26T12:55:33.312730+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/telegram/client.py", line 493, in login
2021-06-26T12:55:33.312946+00:00 app[worker.1]: result = actions[authorization_state]()
2021-06-26T12:55:33.312948+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/telegram/client.py", line 585, in _send_telegram_code
2021-06-26T12:55:33.313163+00:00 app[worker.1]: code = input('Enter code:')
2021-06-26T12:55:33.313168+00:00 app[worker.1]: EOFError: EOF when reading a line
2021-06-26T12:55:33.373308+00:00 heroku[worker.1]: Process exited with status 1
2021-06-26T12:55:33.427790+00:00 heroku[worker.1]: State changed from up to crashed
然后它可能会再次自动启动机器人,然后继续崩溃并输出与上述相同的错误。这里有什么问题,如何解决?
如果问题是它对登录代码的请求,那么我确实会在其他设备上收到登录代码,但是如何将登录代码提供给机器人?更一般地说,您如何响应部署在 Heroku 上的任何机器人的用户输入请求?
*不是真正的使用@BotFather 制作的 Telegram 机器人;它只是使用 Telegram API 开发工具
【问题讨论】: