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

部署在repl.it的discord.py机器人完全不回复消息 问题求助

问题排查与修复方案

以下是你代码中的具体问题和对应修复方法:

  • on_message事件未注册装饰器:你定义的on_message函数没有添加@client.event装饰器,discord.py不会将其识别为事件回调函数,收到消息时不会触发该函数逻辑。
  • 字符串拼接类型错误:message.author是Discord User类实例,不能直接和字符串拼接,会触发类型报错,需要调用str()转换或者使用mention属性艾特用户。
  • 未启用消息内容意图:Discord v10及以上API要求机器人主动开启message_content意图才能获取非指令、非艾特的普通消息内容,否则message.content会返回空字符串,无法匹配$buy前缀。你需要先前往Discord开发者后台的机器人设置页,开启「Message Content Intent」开关。
  • 确认repl.it项目的Secrets(环境变量)中已正确添加键为TOKEN的配置,值为你从Discord开发者平台拿到的机器人令牌。

修复后的完整代码如下:

import discord
import os

# 配置意图,开启消息内容读取权限
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):
    if message.author == client.user:
        return

    if message.content.startswith('$buy'):
       # 修正字符串拼接,使用mention艾特触发用户
       await message.channel.send(f'What would you like to buy {message.author.mention}')

client.run(os.getenv('TOKEN'))

内容的提问来源于stack exchange,提问作者B.S.S.SRIKAR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:45:04