Discord机器人无法读取message.content内容的问题求助
Discord机器人无法获取消息内容的解决方案
问题原因
Discord API当前默认限制机器人读取消息内容,必须手动开启消息内容权限(Message Content Intent),同时在代码中配置对应的Intents参数。
解决步骤
- 登录Discord开发者门户,进入你的机器人应用页面
- 切换到「Bot」标签页,找到「Privileged Gateway Intents」区域
- 开启「Message Content Intent」开关并保存设置
修改后的完整代码
import discord import random TOKEN = 'SECRET' # 配置Intents,启用消息内容读取权限 intents = discord.Intents.default() 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): 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 == '🤖║bot': if user_message.lower() == 'hello': await message.channel.send(f'hello {username}!') return elif user_message.lower() == 'bye': await message.channel.send(f'see you later {username}!') elif user_message.lower() == "!random": response = f'This is your random number: {random.randrange(100)}' await message.channel.send(response) return client.run(TOKEN)
验证效果
重新运行机器人后发送消息,控制台将输出你期望的格式,消息内容会正常显示。
内容的提问来源于stack exchange,提问作者KaoGaming
相关产品推荐
相关产品推荐

