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

Discord机器人无法读取频道消息问题排查求助

问题分析与解决方案

你的机器人无法读取通用频道消息内容、控制台输出空字符串的核心原因是Discord网关意图(Intents)配置不完整,再加上代码里的几个细节错误,下面一步步帮你解决:

1. 启用Message Content Intent(必须操作)

Discord从API v8开始,默认关闭了message_content特权意图,需要你在Discord开发者平台手动开启:

  • 登录Discord开发者门户,找到你的机器人应用
  • 进入「Bot」页面,拉到「Privileged Gateway Intents」区域
  • 开启「Message Content Intent」的开关,保存更改

2. 修正代码中的Intents配置

你代码里用了已弃用的messages=True参数,且未明确启用message_content,这是无法读取消息的关键。把Intents初始化代码改成:

intents = discord.Intents.default()
intents.message_content = True  # 明确启用消息内容读取权限

Intents.default()会启用所有非特权的基础意图,加上message_content就满足读取消息的需求了。

3. 移除无效参数

你创建discord.Client时加了command_prefix="!",但这个参数是给discord.ext.commands.Bot用的,discord.Client并不支持,直接删掉即可:

client = discord.Client(intents=intents)

4. 修正拼写错误(可选但建议)

函数名run_disocrd_bot()里拼错了Discord(少了一个c),改成run_discord_bot()会更规范。

修改后的完整代码

import discord
import responces

async def send_message(message, user_message, is_private):
    try:
        responce = responces.handle_responce(user_message)
        await message.author.send(responce) if is_private else await message.channel.send(responce)
    except Exception as e:
        print(e)

def run_discord_bot():
    TOKEN = '你的Token'  # 建议将Token存到环境变量,不要硬编码在代码里
    intents = discord.Intents.default()
    intents.message_content = True
    client = discord.Client(intents=intents)

    @client.event
    async def on_ready():
        print(f'{client.user} is now running')

    @client.event
    async def on_message(message):
        if message.author == client.user:
            return
        username = str(message.author)
        user_message = str(message.content)
        channel = str(message.channel)
        print(f"{username} said: '{user_message}' ({channel})")

        # 示例:如果需要处理前缀指令,可以在这里调用send_message
        if user_message.startswith('!'):
            user_message = user_message[1:]
            await send_message(message, user_message, is_private=False)

    client.run(TOKEN)

额外提醒

确保你的discord.py是最新版本,旧版本可能不支持新的Intent配置:

pip install -U discord.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 14:23:13