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

Discord.py中如何获取消息内容?message.content返回空值问题

解决Discord.py中message.content返回空值的问题

核心原因

Discord API 后续版本调整了权限策略,消息内容读取权限不再默认开放,必须手动开启相关网关意图(Intent)才能获取message.content的值。

解决步骤

1. 在Discord开发者平台开启消息内容意图

  • 登录Discord开发者平台,找到你的机器人应用
  • 进入「Bot」页面,下滑到「Privileged Gateway Intents」区域
  • 开启「Message Content Intent」选项,保存更改

2. 在代码中启用消息内容意图

初始化机器人客户端时,必须显式传入包含消息内容权限的意图配置,示例代码如下:

import discord
from discord.ext import commands

# 初始化基础意图,并开启消息内容权限
intents = discord.Intents.default()
intents.message_content = True

# 传入意图创建Bot实例
bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_message(message: discord.Message):
    print(message.content)
    print(message.author.name)
    print(message.channel.name)
    # 如果使用命令框架,必须添加该行,否则自定义命令会失效
    await bot.process_commands(message)

# 替换为你的机器人令牌
bot.run('YOUR_BOT_TOKEN')

额外注意

  • 若使用discord.Client而非commands.Bot,初始化时同样需要传入配置好的intents参数:
    client = discord.Client(intents=intents)
    
  • 确保机器人的令牌与开发者平台中开启权限的应用对应,避免权限不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:35:22