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

Discord机器人可检测消息但无法读取消息内容的问题求助

Discord机器人无法读取消息内容的问题解决

问题情况

开发的Discord机器人能检测到消息事件,但无法读取消息的具体内容,message.content输出为空。

代码示例

import discord
import os
client = discord.Client(intents=discord.Intents.default())


@client.event
async def on_ready():
  print("This is user {0.user}".format(client))


@client.event
async def on_message(message):
  print(message)
  print(message.content)
  if message.author == client.user:
    return
  if message.content.startswith("$hello"):
    await message.channel.send("Hello!")

my_secret = os.environ['TOKEN3']

client.run(my_secret)

运行输出

<Message id=1089613042033111062 channel= type=<MessageType.default: 0> author=<Member id=1029808272267550740 name='l_programmer' discriminator='1926' bot=False nick=None guild=> flags=>

相关设置截图

  • URL配置界面:
    my URL settings

  • 机器人基础设置:
    my bot settings

  • 权限意图设置:
    权限意图设置

解决方法

1. 修改代码中的Intents配置

Discord的message_content权限不在默认Intents集合内,需手动开启:

import discord
import os

# 初始化默认Intents并开启消息内容权限
intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)


@client.event
async def on_ready():
  print("This is user {0.user}".format(client))


@client.event
async def on_message(message):
  print(message)
  print(message.content)
  if message.author == client.user:
    return
  if message.content.startswith("$hello"):
    await message.channel.send("Hello!")

my_secret = os.environ['TOKEN3']

client.run(my_secret)

2. 在Discord开发者后台开启对应权限

进入Discord开发者门户的机器人应用页面:

  • 切换到「Bot」标签页
  • 在「Privileged Gateway Intents」区域,开启Message Content Intent权限(对应第三个截图中的开关)

完成以上两步后,机器人即可正常读取消息内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:35:24