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

discord.py获取消息content始终为空,跨设备运行无报错求助

解决discord.py中message.content始终为空的问题

核心原因

你的代码使用discord.Intents.default()初始化权限,但Discord API v9及之后,消息内容权限(Message Content Intent)不再包含在默认权限组内,必须显式启用。跨设备运行异常的本质是两台设备的discord.py版本不一致:笔记本可能是v1.x旧版本,对Intents要求宽松;当前PC是v2.0+版本,严格遵循新的权限规则,无报错是因为权限缺失属于合法状态,不会触发异常。

解决方案

1. 在Discord开发者平台开启权限

  • 登录Discord开发者平台,进入你的机器人应用页面
  • 切换到「Bot」标签页
  • 在「Privileged Gateway Intents」区域,开启「Message Content Intent」

2. 修改代码中的Intents配置

更新代码,显式启用消息内容权限,同时建议添加机器人自消息过滤(避免处理自身发送的消息):

import nest_asyncio
nest_asyncio.apply()
import discord

TOKEN = "TOKEN"

# 初始化Intents,启用消息内容权限
intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print("logged in as {0.user}".format(client))
    

@client.event
async def on_message(message):
    # 跳过机器人自身的消息
    if message.author == client.user:
        return
    
    username = str(message.author).split("#")[0]
    user_message = message.content
    channel = str(message.channel.name)
    print(f"{username}: {user_message} ({channel})")
    
client.run(TOKEN)

3. 统一设备间的discord.py版本

运行以下命令确保当前PC的discord.py为最新版本:

pip install --upgrade discord.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:45:33