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

Discord.Py机器人能接收消息但无响应问题求助

问题分析与解决方案

你的机器人能接收消息但无法响应,核心问题有两个:

1. 未启用message_content意图

Discord.py v2.0及以上版本中,Intents.default()默认不包含读取消息内容的权限,必须显式开启该意图,同时还要在Discord开发者后台开启对应权限。

代码修改:

在定义intents的代码块中添加一行:

intents.message_content = True

开发者后台操作:

进入你的机器人应用页面,切换到「Bot」标签页,找到「Privileged Gateway Intents」区域,开启「Message Content Intent」后保存更改。

2. client.close()的异步调用问题

client.close()是异步方法,必须用await修饰调用,否则会触发运行时错误。

修改后的完整代码

import discord
import os
from discord.ext import commands 

intents = discord.Intents.default()
intents.message_content = True  # 开启消息内容读取权限
client = discord.Client(intents=intents)

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

@client.event
async def on_message(message):
    content = message.content
    user = message.author

    if user == client.user:
        return

    print("Received a message:", content)

    if content.strip() == "$hello":
        await message.channel.send("Hi!")

    if content.strip() == "$die":
        await message.channel.send("No you")
        await client.close()  # 异步调用关闭方法


client.run(os.environ['Token'])

完成上述修改后,重新启动机器人即可正常响应消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:30:59