Discord机器人无响应问题求助:消息未被检测
Discord机器人无法检测消息的解决方案
1. 在Discord开发者平台开启消息内容权限
- 登录Discord开发者平台,找到你的机器人应用
- 进入「Bot」页面,在「Privileged Gateway Intents」板块下,开启「Message Content Intent」选项
2. 修改代码中的Intents配置
原代码使用默认Intents,缺少消息内容权限,替换成以下配置:
import discord import random TOKEN = "你的机器人Token" # 配置Intents,启用消息内容权限 intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) @client.event async def on_ready(): print("我们已以 {0.user} 的身份登录".format(client)) @client.event async def on_message(message): username = str(message.author).split("#")[0] user_message = str(message.content) channel = str(message.channel.name) print(f"{username}: {user_message} ({channel})") if message.author == client.user: return if message.channel.name == "general": if user_message.lower() == "do it jeff": await message.channel.send(f"My name is Jeff") return elif user_message.lower() == "stop": await message.channel.send(f"NEVER {username}!") return client.run(TOKEN)
问题原因
Discord v14及以后版本中,message_content属于特权网关意图,默认处于关闭状态。你的代码仅调用discord.Intents.default(),未启用该权限,导致机器人无法读取用户发送的消息内容,终端只能显示频道名称,无法触发后续的命令响应逻辑。
内容的提问来源于stack exchange,提问作者Ozakir
相关产品推荐
相关产品推荐

