Discord Bot已运行但命令无响应 技术求助
Discord Bot无命令响应问题排查与修复
你的Bot在线但不响应命令,核心存在两个问题:
- 事件函数命名错误:Discord.py框架仅识别特定的事件函数名,消息监听事件的正确名称是
on_message,而非你自定义的hello_message,框架不会触发非标准命名的事件函数。 - Intents权限缺失:默认的
discord.Intents.default()不包含读取消息内容的权限,必须手动开启message_content意图,同时需在Discord开发者后台开启对应权限开关。
修正后的完整代码
import os import discord TOKEN = os.getenv('TOKEN') # 初始化包含消息内容权限的Intents 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(ctx): if ctx.author == client.user: return if ctx.content.startswith('$hello'): await ctx.channel.send('Hello there!!!') if __name__ == "__main__": client.run(TOKEN)
必须完成的额外操作
登录Discord开发者平台,找到你的Bot应用:
- 进入「Bot」页面
- 滚动到「Privileged Gateway Intents」区域
- 开启「Message Content Intent」并保存设置
- 重启Bot服务
内容的提问来源于stack exchange,提问作者Raveesh yadav
相关产品推荐
相关产品推荐

