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

求助:无法获取Discord中机器人发送的消息内容

无法捕获其他Discord机器人发送的消息内容排查方案

排查点1:确认消息类型是否为普通文本

如果其他机器人发送的是嵌入消息(Embed)、附件或仅含表情的消息,message.content会返回空字符串。你可以修改代码打印更多字段验证:

@bot.event
async def on_message(message):
    print(f"发送者ID: {message.author.id}, 是否为机器人: {message.author.bot}")
    print(f"消息内容: {message.content}")
    print(f"是否包含嵌入: {len(message.embeds) > 0}")
    print(f"是否包含附件: {len(message.attachments) > 0}")
    # 使用commands.Bot时必须添加此行,否则命令无法正常触发
    await bot.process_commands(message)

排查点2:确认Discord开发者门户的Intents完全启用

即使代码中配置了Intents,仍需在Discord开发者门户对应机器人的Bot页面,确保Privileged Gateway Intents区域的以下开关全部启用:

  • Server Members Intent
  • Message Content Intent

排查点3:检查机器人的频道权限

确保你的机器人在目标频道拥有以下核心权限:

  • 查看频道(View Channel)
  • 读取消息历史(Read Message History)

排查点4:优化代码中的Intents冗余设置

你当前代码里intents = discord.Intents.all()已经包含所有权限,后续单独设置intents.members = True和intents.message_content = True属于冗余操作,可简化为:

intents = discord.Intents.default()
intents.members = True
intents.message_content = True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:12:37