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

discord.py消息检测失效:代码无法识别特定单词,求排查错误

问题排查与修复方案

代码里的核心错误有3处:

  • 事件名称拼写错误:把on_message写成了on_messge,少了字母s,discord.py无法识别这个错误命名的事件,导致消息检测逻辑根本不会触发。
  • 参数与属性调用错误:on_message事件的参数是message对象(不是ctx);另外content是对象的属性,不是方法,不能加括号调用,正确写法是message.content。
  • 消息内容权限缺失(针对discord.py v2.x+):如果用的是discord.py 2.0及以上版本,必须在Discord开发者门户开启消息内容意图(Message Content Intent),同时代码里初始化客户端时要指定开启该意图,否则机器人读不到消息内容。

修正后的完整代码

import discord

# 初始化客户端,开启消息内容意图
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

@client.event
async def on_message(message):
    # 跳过机器人自己发的消息,避免循环触发
    if message.author == client.user:
        return
    
    msg = message.content.lower()  # 转小写实现不区分大小写的匹配
    words_list = ["check", 'for', 'any', 'word', 'from', 'list']

    if any(word in msg for word in words_list):
        await message.channel.send("message here")

# 替换成你的机器人令牌
client.run("YOUR_BOT_TOKEN")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:20:28