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

已开启消息意图但discord.py的message.content返回空值的问题排查

问题原因与解决方案

你的问题核心在于代码中未启用message_content意图——尽管你在开发者门户开启了该权限,但discord.py v2.0+版本要求必须在代码中显式声明启用这个意图,否则无法获取消息内容,进而导致机器人无响应。

修复步骤:

  1. 再次确认Discord开发者门户中,机器人的Privileged Gateway Intents下的Message Content Intent已处于开启状态(你已完成此操作,可快速核对)。
  2. 修改代码中的intents配置部分,添加message_content意图的启用:
import discord
from random import choice

TOKEN = "你的令牌"

# 修改intents配置,新增message_content启用
intents = discord.Intents.default()
intents.members = True
intents.message_content = True  # 关键新增行

client = discord.Client(intents=intents)

# 其余代码保持不变
with open('answers.txt','r') as f:
    word = choice(f.readlines())

@client.event
async def on_ready():
    print('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)
    print(username,user_message)
    if message.author == client.user:
        return

    if message.content.startswith('hi'):
        await message.channel.send(f'Hi {username}, you said {user_message}')
        return

client.run(TOKEN)

补充说明:

discord.py从v2.0版本开始,将message_content列为特权意图,必须同时满足两个条件才能正常获取消息内容:

  • 开发者门户中开启对应意图
  • 代码中显式设置intents.message_content = True

缺少任一条件,message.content都会返回空字符串,机器人也就无法触发消息响应逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:50:31