Replit运行Discord机器人报discord.errors.LoginFailure: Improper token求助
问题原因
- 代码存在语法错误:你已经通过
os.environ['token']将密钥读取到了token变量中,但调用client.run()时传入的是字符串字面量"token",而非存储了真实密钥的token变量,相当于向Discord接口传递了"token"这5个无效字符,自然会触发鉴权失败报错。 - 额外的潜在问题:你使用的discord.py版本中,
on_ready事件没有添加@client.event装饰器注册,后续即使启动成功也无法触发就绪回调逻辑。
解决方案
修改后的完整代码如下:
import discord import os client = discord.Client() token = os.environ['token'] # 补充事件注册装饰器 @client.event async def on_ready(): await client.change_presence(game=discord.Game(name=" dm for support ;)")) # 传入变量token,不要加引号 client.run(token)
如果修改代码后仍有报错,可按以下顺序排查:
- 检查Replit Secrets中配置的token值是否完整,没有前后多余的空格、换行符
- 确认你复制的是Discord开发者平台Bot页面的Bot Token,不是OAuth2密钥、客户端ID等其他数值
- 确认你的Discord Bot账号未被官方封禁,对应Token没有被重置过
内容的提问来源于stack exchange,提问作者Thunder Bolt yt Jb
相关产品推荐
相关产品推荐

