You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py机器人记录最新n条消息无响应问题排查

解决Discord.py机器人无法响应命令并记录消息的问题

你遇到的问题核心是代码里没正确配置Message Content意图——虽然你已经在Discord开发者后台开启了这个特权意图,但代码里没同步设置,导致机器人接收不到命令消息内容,所以执行!record_last_messages 10没反应,同时弹出那个警告。

直接修改代码里的intents配置部分,加上intents.message_content = True即可,修正后的完整代码如下:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.messages = True
# 新增这一行,开启消息内容意图
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name}')

@bot.command()
async def record_last_messages(ctx, n: int):
    channel = ctx.channel
    # 取n+1条是为了排除触发命令的这条消息,逻辑没问题
    messages = await channel.history(limit=n+1).flatten()
    messages.reverse()  # 反转后按时间顺序排列
    with open('recorded_messages.txt', 'w', encoding='utf-8') as file:
        for message in messages:
            file.write(f'{message.author.name}: {message.content}\n')
    await ctx.send(f'{n} last messages recorded!')

# 替换成你的真实机器人Token
bot.run('你的机器人Token')

修改后重启机器人,再执行命令就能正常工作了:机器人会记录当前频道最新的n条消息(排除命令本身),保存到recorded_messages.txt,并在频道发送确认消息。

内容的提问来源于stack exchange,提问作者Cyamites

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:53:10