Discord机器人在线但无法响应消息问题求助
问题原因及解决办法
核心问题1:代码执行顺序错误
你的client.run("token")写在了on_message事件定义之前,一旦调用run(),客户端就会启动并阻塞后续代码执行,导致on_message事件根本没被注册。
核心问题2:消息意图未开启
Discord的默认Intents不包含读取消息内容的权限,必须显式开启message_content意图,否则机器人无法获取消息内容进行判断。
修复后的完整代码
import discord # 开启所需的Intents,包含消息内容权限 intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) @client.event async def on_message(message): # 避免机器人响应自己的消息 if message.author == client.user: return if message.content == "ping": await message.channel.send("pong") # 最后调用run启动客户端 client.run("你的机器人token")
额外步骤:Discord开发者后台配置
- 登录Discord开发者门户,找到你的机器人应用
- 进入「Bot」页面,在「Privileged Gateway Intents」下开启「Message Content Intent」
内容的提问来源于stack exchange,提问作者Loran
相关产品推荐
相关产品推荐

