You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Discord官方应用令牌登录机器人时触发"Improper token has been passed"错误的排查求助

Discord官方应用令牌登录机器人时触发"Improper token has been passed"错误的排查求助

我最近在开发Discord机器人时遇到了一个棘手的问题:每次运行代码,程序都会先提示正在登录,接着显示找到用户代理,但之后就直接抛出错误了。更奇怪的是,完全相同的代码用普通Discord账号的令牌运行时一切正常,可换成我自己在Discord开发者门户创建的官方应用的令牌就不行。

以下是我使用的代码:

import discord
from discord.ext import commands
# in player.py I have commented out import audioop in line 28


prefix = ["Yombot, ", "YomBot, ", "Yb, ", "YB, "]


token = "token from bot tab in discord developer portal"
client = commands.Bot(command_prefix=prefix, bot=True)


@client.event
async def on_ready():
    print(f'Yombot has connected to Discord!')


client.run(token)

我期望的结果:
机器人成功登录并处于可运行状态

实际发生的情况:
我遇到了如下错误:

E:\yombot\venv\Scripts\python.exe E:\yombot\main.py 
2025-02-10 00:23:55 INFO     discord.client Logging in using static token.
2025-02-10 00:23:56 INFO     discord.http Found user agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36, build number 366955.
Traceback (most recent call last):
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\http.py", line 994, in static_login
    data = await self.get_me()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\http.py", line 838, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 401 Unauthorized (error code: 0): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "E:\yombot\main.py", line 19, in <module>
    client.run(token)
    ~~~~~~~~~~^^^^^^^
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\client.py", line 938, in run
    asyncio.run(runner())
    ~~~~~~~~~~~^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\asyncio\base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\client.py", line 927, in runner
    await self.start(token, reconnect=reconnect)
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\client.py", line 857, in start
    await self.login(token)
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\client.py", line 698, in login
    data = await state.http.static_login(token.strip())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\discord\http.py", line 998, in static_login
    raise LoginFailure('Improper token has been passed') from exc
discord.errors.LoginFailure: Improper token has been passed

备注:内容来源于stack exchange,提问作者Waffles

火山引擎 最新活动