Discord机器人仅响应DM,服务器频道无响应问题求助
问题排查与解决
你的机器人仅响应私信、不处理服务器频道消息,核心原因是Discord的消息内容意图(Message Content Intent)未正确配置,具体解决步骤如下:
1. 修正代码中的Intents设置
Discord v20及以上版本要求显式声明需要使用的消息内容权限,默认的discord.Intents.default()不包含该权限。修改代码的Intents初始化部分:
import discord class MyClient(discord.Client): async def on_ready(self): print("I'm Online") async def on_message(self, message): if message.author == client.user: return print(f"Message from {message.author}: {message.content}") if message.content.startswith("Hello Bot"): await message.channel.send("Hello") # 配置所需的Intents intents = discord.Intents.default() intents.message_content = True # 必须开启:允许机器人读取消息内容 client = MyClient(intents=intents) client.run("my token")
2. 在Discord开发者后台启用对应权限
仅修改代码无法生效,需到Discord开发者门户完成配置:
- 登录Discord开发者门户,找到你的机器人应用
- 切换到Bot标签页
- 在Privileged Gateway Intents板块,找到Message Content Intent并开启
- 保存设置
3. 验证机器人的服务器权限
确保你的机器人在目标服务器中拥有以下基础权限:
- 读取消息/查看频道
- 发送消息
- 读取消息历史
完成上述操作后重启机器人,服务器频道内的消息就能正常触发on_message事件了。
内容的提问来源于stack exchange,提问作者Trissi
相关产品推荐
相关产品推荐

