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

Discord机器人无法回复消息的问题排查及代码修复请求

Discord机器人无法回复消息的问题排查及代码修复请求

嘿,我帮你排查出代码里的几个关键问题,这就是机器人不回复消息的原因,下面给你详细说明并附上修复后的完整代码:

代码里的问题点:

  • 缺少事件装饰器:你的on_message函数没有添加@client.event装饰器,Discord.py无法识别这是一个消息事件处理函数,自然不会触发它。
  • 缩进错误:Python是严格依赖缩进的语言,你代码里on_ready的print语句、on_message里的判断逻辑都没有正确缩进,会导致代码运行报错或者逻辑不执行。
  • Intents权限不足:当前Discord要求必须显式开启message_content意图才能读取消息内容,而你使用的discord.Intents.default()并不包含这个权限,所以机器人根本看不到你发送的消息。
  • 消息发送方法错误:message.send()是不存在的方法,想要回复消息应该用message.reply()(带引用回复)或者message.channel.send()(在对应频道发送消息)。

修复后的完整代码:

import discord

# 开启所需的Intents,包含message_content权限
intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

TOKEN = "MY TOKEN HERE"

@client.event
async def on_ready():
    # 正确缩进的print语句
    print(f"{client.user.name} has logged in!")

@client.event  # 给on_message加上事件装饰器
async def on_message(message):
    # 避免机器人回复自己的消息,防止死循环
    if message.author == client.user:
        return
    
    if message.content == "안녕?":
        # 使用正确的reply方法带引用回复
        await message.reply("안녕!")

client.run(TOKEN)

关于Mac和Windows的差异:

其实几乎没有本质区别,代码本身是完全跨平台的。唯一可能需要注意的是Python环境的配置:Mac自带Python2,你要确保自己安装并使用的是Python3;安装discord.py的时候,Mac上可能需要用pip3 install discord.py而Windows用pip install discord.py,但只要环境配置正确,机器人的运行逻辑不会因为系统不同而出现问题。

备注:内容来源于stack exchange,提问作者seonhukim7805

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 14:23:00