Python开发Discord Bot遇TypeError:缺少必填关键字参数'intents'
解决Discord Bot TypeError: init() missing required keyword-only argument: 'intents'
这个错误是因为discord.py v2.0及以上版本强制要求实例化discord.Client()时传入intents参数,这是Discord官方推出的权限控制机制,用来限制机器人能获取的事件类型,避免不必要的资源消耗。
修复步骤:
创建并配置Intents对象
最简单的方式是使用默认意图,再手动开启消息内容权限(v2.0+必须开启才能读取消息内容):import discord import random # 初始化默认意图 intents = discord.Intents.default() # 开启消息内容读取权限(机器人处理消息必须添加) intents.message_content = True # 将intents传入Client实例 client = discord.Client(intents=intents) @client.event async def on_ready(): print("Logged in as {0.user}".format(client)) client.run(TOKEN)在Discord开发者后台开启对应特权意图
登录Discord开发者门户,找到你的Bot应用,进入「Bot」页面,在「Privileged Gateway Intents」板块开启对应的权限(比如Message Content Intent),否则机器人无法正常接收消息事件。
进阶:自定义权限(按需开启)
如果不需要所有默认权限,可以创建空意图,手动开启所需权限,减少资源占用:
import discord # 初始化空意图 intents = discord.Intents.none() # 按需开启权限:示例为服务器事件、消息事件、消息内容 intents.guilds = True intents.messages = True intents.message_content = True client = discord.Client(intents=intents) # 后续代码不变
内容的提问来源于stack exchange,提问作者Naruto_333
相关产品推荐
相关产品推荐

