开发带动画的Discord自机器人流媒体状态时遇intents参数缺失错误
解决Discord自机器人的intents缺失报错
问题原因
Discord.py 2.0及以上版本强制要求创建commands.Bot实例时必须传入intents参数,不再支持默认省略,这是触发报错的核心原因。
修复步骤
- 导入Intents类:在代码顶部添加Discord.py的Intents导入语句
- 配置intents权限:创建Intents实例,开启自机器人所需的基础权限
- 更新Bot初始化代码:将intents参数传入
commands.Bot的构造函数
修改后的完整代码示例
import os import json from discord.ext import commands from discord import Intents with open('config.json') as f: config = json.load(f) # 可根据需求选择用环境变量或配置文件中的token,这里保留环境变量方式 token = os.getenv('TOKEN') # 初始化基础intents权限 intents = Intents.default() # 若需读取消息等额外功能,可按需开启对应权限,例: # intents.message_content = True # 创建Bot实例时传入intents参数 client = commands.Bot(command_prefix=':', self_bot=True, intents=intents) def Clear(): os.system('cls') Clear() def Init(): global token try: # 注意变量名统一,和创建的Bot实例保持一致 client.run(token, bot=False, reconnect=True) os.system(f'title (Activity Statuses)') except Exception as e: print(f"启动失败: {str(e)}") # 调用初始化函数启动机器人 Init()
额外说明
- 若自机器人需要实现特定功能(如读取消息),需先在Discord开发者面板的机器人页面开启对应intents权限,再在代码中启用对应参数
- 确保Discord.py为最新版本,可通过
pip install -U discord.py命令升级
内容的提问来源于stack exchange,提问作者mr nekrozyt
相关产品推荐
相关产品推荐

