You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发Discord Bot遇TypeError:缺少必填关键字参数'intents'

解决Discord Bot TypeError: init() missing required keyword-only argument: 'intents'

这个错误是因为discord.py v2.0及以上版本强制要求实例化discord.Client()时传入intents参数,这是Discord官方推出的权限控制机制,用来限制机器人能获取的事件类型,避免不必要的资源消耗。

修复步骤:

  1. 创建并配置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)
    
  2. 在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:37:06