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

Discord.py开发消息抓取机器人获取非自身/被@消息内容为空如何解决

问题原因
  • Discord从2022年开始对所有API接入方施加消息内容访问限制:默认仅能获取**@你的消息、你自己发送的消息**的明文内容,其余普通群聊、非提及你的私信消息的content类字段都会返回空字符串,和你调用哪个属性无关。
  • 你的代码未显式声明消息相关的访问意图,且如果你使用的是个人用户账号登录(即代码中bot=False的自机器人场景),该限制为Discord强制限制,无官方解除渠道。
解决方法

场景1:使用官方注册的机器人账号(推荐,符合平台规则)

  1. 首先修改初始化Bot的代码,显式开启消息内容访问权限:
import discord
from discord.ext import commands

# 声明所需权限,核心开启message_content意图
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("ready")

@bot.event
async def on_message(message):
    print(message)
    print(message.clean_content)
    print(message.system_content)   
    print(message.content)


bot.run(你的机器人token) # 移除bot=False参数,填入官方机器人账号的token
  1. 登录Discord开发者后台,进入对应机器人应用的「Bot」设置页,在Privileged Gateway Intents分类下开启Message Content Intent开关,保存后重启机器人即可正常获取所有消息内容。

场景2:使用个人用户账号(自机器人)

  • 注意:自机器人违反Discord服务条款,检测到会直接封禁你的个人账号,不建议使用。
  • 若必须使用,可将discord.py降级到1.7.3及以下版本,该版本发布早于Discord消息内容限制生效时间,部分场景可绕过限制获取内容,但账号封禁风险极高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:54:04