【问题标题】:Discord.py bot hosting on Heroku fails due to token issues由于令牌问题,在 Heroku 上托管 Discord.py 机器人失败
【发布时间】:2019-10-24 16:17:21
【问题描述】:

所以我试图在 Heroku 上运行这个非常简单的不和谐机器人(https://github.com/RapidKebab/hibot420),我可以在本地通过 cmd 运行它,它可以使用 dotenv 和 .env 文件完美运行。

对于 Heroku,它不会加载 dotenv,因此 git 版本已将 dotenv 内容注释掉并替换为应该从 Heroku 配置变量中提取“DISCORD_TOKEN”的内容,我确定令牌本身是正确的,但我得到了错误“401:未经授权”和“登录失败:已通过不正确的令牌。”显然后者是由前者直接引起的。

日志:

2019-10-24T16:14:37.910317+00:00 heroku[worker.1]: Process exited with status 1
2019-10-24T16:14:37.959627+00:00 heroku[worker.1]: State changed from up to crashed
2019-10-24T16:14:37.77383+00:00 app[worker.1]: Traceback (most recent call last):
2019-10-24T16:14:37.773868+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/http.py", line 256, in static_login
2019-10-24T16:14:37.774648+00:00 app[worker.1]:     data = await self.request(Route('GET', '/users/@me'))
2019-10-24T16:14:37.774654+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/http.py", line 220, in request
2019-10-24T16:14:37.775561+00:00 app[worker.1]:     raise HTTPException(r, data)
2019-10-24T16:14:37.775615+00:00 app[worker.1]: discord.errors.HTTPException: 401 UNAUTHORIZED (error code: 0): 401: Unauthorized
2019-10-24T16:14:37.77562+00:00 app[worker.1]: 
2019-10-24T16:14:37.775622+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2019-10-24T16:14:37.775623+00:00 app[worker.1]: 
2019-10-24T16:14:37.775626+00:00 app[worker.1]: Traceback (most recent call last):
2019-10-24T16:14:37.775649+00:00 app[worker.1]:   File "bot.py", line 27, in <module>
2019-10-24T16:14:37.77648+00:00 app[worker.1]:     client.run(token)
2019-10-24T16:14:37.776484+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 640, in run
2019-10-24T16:14:37.778024+00:00 app[worker.1]:     return future.result()
2019-10-24T16:14:37.778029+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 621, in runner
2019-10-24T16:14:37.778666+00:00 app[worker.1]:     await self.start(*args, **kwargs)
2019-10-24T16:14:37.77902+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 584, in start
2019-10-24T16:14:37.780225+00:00 app[worker.1]:     await self.login(*args, bot=bot)
2019-10-24T16:14:37.780246+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 442, in login
2019-10-24T16:14:37.782041+00:00 app[worker.1]:     await self.http.static_login(token.strip(), bot=bot)
2019-10-24T16:14:37.782047+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/http.py", line 260, in static_login
2019-10-24T16:14:37.782977+00:00 app[worker.1]:     raise LoginFailure('Improper token has been passed.') from exc
2019-10-24T16:14:37.783003+00:00 app[worker.1]: discord.errors.LoginFailure: Improper token has been passed.

【问题讨论】:

  • 错误在第42行,你漏掉了一个分号

标签: python heroku discord.py


【解决方案1】:

当我尝试使用 heroku 托管我的机器人时遇到了同样的问题,我一次又一次地验证了我的代码,但机器人仍然无法工作。我的错误出现在环境变量中,我将令牌放在引号之间(因为它是一个字符串),但 heroku 使用 '"your token"' 作为令牌,所以我尝试将不带引号的令牌放入 var 容器中,这很有效。也许您正面临其他问题,在这种情况下,请显示有关您的代码、heroku 设置等的更多信息...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2021-05-28
    • 2020-09-05
    • 2020-07-20
    • 2020-06-27
    • 2021-12-19
    • 2020-07-09
    相关资源
    最近更新 更多