基础Discord自机器人运行脚本时触发Intents错误
解决Discord自机器人Intents报错问题
问题原因
Discord API 从v8版本开始强制要求显式声明机器人要使用的Intents(意图),自机器人同样受此规则约束。你的代码没有配置任何Intents,且旧StackOverflow方案可能未适配message_content这个后续新增的关键意图,所以报错。
修复步骤
- 导入并初始化Intents实例,开启自机器人基础功能必需的权限:
message_content:必须开启,否则无法读取用户发送的命令内容messages:开启消息相关的操作权限
- 创建
commands.Bot实例时,将配置好的Intents传入参数。
修改后的完整代码
import discord from discord.ext import commands # 配置Intents intents = discord.Intents.default() intents.message_content = True intents.messages = True # 初始化Bot并传入Intents bot = commands.Bot(command_prefix='>', self_bot=True, intents=intents) @bot.command() async def ping(ctx): await ctx.send('Pong!') TOKEN = 'xxx' bot.run(TOKEN)
额外说明
- 如果你之前尝试的旧方案只调用了
discord.Intents.default(),那会缺少message_content权限,这是后来Discord新增的敏感权限,必须单独开启。 - 注意:Discord官方禁止使用自机器人,此方案仅用于技术学习,使用时请遵守Discord服务条款。
内容的提问来源于stack exchange,提问作者Alpha
相关产品推荐
相关产品推荐

