Python开发的Discord机器人仅响应私信,服务器频道无反应求助
Discord机器人无法响应服务器频道消息的排查方案
核心问题:缺失消息内容意图权限
Discord.py v2.0及以上版本默认关闭message_content意图,未开启该权限时,机器人无法读取服务器频道内的消息内容,自然无法触发on_message事件里的指令判断逻辑。你的代码仅开启了members意图,遗漏了这个关键配置。修复步骤
- 更新代码中的Intents配置
添加message_content=True开启消息内容读取权限:import discord intents = discord.Intents.default() intents.members = True intents.message_content = True # 新增该行开启消息内容意图 client = discord.Client(intents=intents) @client.event async def on_ready(): print('We have logged in as {0.user}'.format(client)) @client.event async def on_message(message): if message.content.startswith('$hello'): await message.channel.send('Hello!') client.run('你的机器人Token') - 在Discord开发者后台启用对应特权意图
登录Discord开发者门户,找到你的机器人应用:- 进入「Bot」页面
- 在「Privileged Gateway Intents」板块,开启「Message Content Intent」开关
- 更新代码中的Intents配置
额外验证项
- 再次核对服务器内机器人角色的权限:确保拥有「查看频道」「发送消息」权限
- 检查机器人角色的排序:角色位置需高于服务器内其他可能限制消息读取的角色
内容的提问来源于stack exchange,提问作者Heaven Touch
相关产品推荐
相关产品推荐

