PyCharm中Discord机器人无消息响应问题排查
Discord机器人无法响应消息的原因与解决方法
问题根源
你使用的discord.Intents.default()仅启用了Discord的基础意图,但**消息内容读取权限(Message Content Intent)**默认处于关闭状态。没有这个权限,机器人无法获取消息内容,on_message事件里的判断逻辑自然无法触发。
解决步骤
1. 调整代码的Intents配置
修改代码,显式开启消息内容权限:
import discord TOKEN = 'MY TOKEN' # 初始化默认意图,同时开启消息内容权限 intents = discord.Intents.default() intents.message_content = True # 这一行是关键,必须添加 client = discord.Client(intents=intents) @client.event async def on_ready(): print(f'{client.user} has connected to Discord!') @client.event async def on_message(message): if message.author == client.user: return if message.content == 'hi': response = "hello" await message.channel.send(response) client.run(TOKEN)
2. 在Discord开发者后台开启权限
仅修改代码不够,需在Discord开发者平台手动开启对应权限:
- 打开Discord开发者应用页面,找到你的机器人应用
- 进入「Bot」标签页
- 在「Privileged Gateway Intents」区域,找到「Message Content Intent」并开启开关
- 保存设置
3. 重启机器人
修改代码和后台设置后,必须重启机器人程序,新的权限配置才能生效。
内容的提问来源于stack exchange,提问作者Fabian OceanMan Grey
相关产品推荐
相关产品推荐

