Python中Discord Bot创建Client时出现TypeError错误求助
解决Discord Bot创建Client时的TypeError(缺少'intents'参数)
在开发基础Discord Bot时,执行discord.Client()时触发TypeError,错误提示:
Client.init() missing 1 required keyword-only argument: 'intents'
这是因为新版discord.py库要求必须显式声明机器人需要的权限意图(Intents),不再支持无参数初始化Client。
解决步骤
- 初始化权限意图实例,根据功能需求选择权限范围:
- 使用默认基础权限:
intents = discord.Intents.default() - 如果需要读取用户消息内容(处理输入指令),需额外开启:
intents.message_content = True
- 使用默认基础权限:
- 将intents参数传入
discord.Client()构造函数
修改后的完整代码
import discord import responses async def send_message(message, user_message, is_private): try: response = responses.handle_response(user_message) await message.author.send(response) if is_private else await message.channel.send(response) except Exception as e: print(e) def run_discord_bot(): TOKEN = 'token' # 初始化权限意图 intents = discord.Intents.default() # 开启消息内容读取权限(按需添加) intents.message_content = True # 传入intents创建Client实例 client = discord.Client(intents=intents) @client.event async def on_ready(): print(f'{client.user} 已启动运行!') client.run(TOKEN)
额外注意
如果开启了message_content权限,需要登录Discord开发者平台,在机器人设置的"Privileged Gateway Intents"中,手动开启"Message Content Intent"开关,否则机器人无法正常读取用户消息内容。
内容的提问来源于stack exchange,提问作者user22272040
相关产品推荐
相关产品推荐

