discord.py中TypeError缺失intents参数的原因及修复方法
解决Discord机器人
__init__ missing 1 required keyword-only argument: "intents"错误 错误原因
你使用的是Discord.py v2.0及以上版本,该版本开始强制要求创建discord.Client实例时必须传入intents参数——这个参数用来明确机器人需要获取的Discord事件权限,不再默认开放所有权限。
修复步骤及代码
- 定义并传入Intents参数:创建Intents实例,启用必要的权限(比如默认权限+消息内容权限,可根据需求调整)
- 移除手动调用
on_ready():这个函数是Discord.py的事件回调,机器人登录成功后框架会自动触发,手动调用会报错 - 获取机器人真实名称标签:用
client.user代替自定义的name变量,才能输出botname#6969格式的真实账号信息
修改后的完整代码:
import discord # 创建intents实例,启用默认权限+消息内容权限(不需要处理消息可去掉第二行) intents = discord.Intents.default() intents.message_content = True token = "你的机器人token" # 传入intents参数创建Client实例 client = discord.Client(intents=intents) @client.event async def on_ready(): # 用client.user获取机器人的用户名和标签 print(f"Bot logged in as {client.user}!") # 启动机器人,无需手动调用on_ready() client.run(token)
额外说明
- 若不需要处理消息内容,仅保留
discord.Intents.default()即可,无需开启message_content - 确保Discord开发者后台的机器人页面已启用对应意图(比如消息内容意图需要手动在后台开启,否则代码设置无效)
内容的提问来源于stack exchange,提问作者Fort
相关产品推荐
相关产品推荐

