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

Discord机器人执行斜杠命令后显示“应用未响应”问题求助

问题原因及解决办法

你的核心问题是没有完成Discord斜杠命令的交互响应流程:Discord要求斜杠命令必须通过特定方法告知平台“命令已处理完成”,你现在只调用了ctx.channel.send()发送消息,但这个操作不会标记命令交互完成,平台超时后就会显示“应用未响应”,哪怕机器人已经发了消息。

两种可行的解决方式

方式1:直接回复命令发起者(推荐)

用ctx.response.send_message()替代ctx.channel.send(),这个方法会同时完成交互确认和消息发送,直接在命令下方显示回复:

@tree.command(name="test", description="test", guild=discord.Object(id=idnu))
async def lal(ctx, last: str):
    response = "strresponse"
    await ctx.response.send_message(response)

如果想让回复仅命令发起者可见,可以加参数:await ctx.response.send_message(response, ephemeral=True)

方式2:先确认交互,再发送频道消息

如果一定要在频道公开发送消息,先调用defer()临时确认交互(避免超时),再发送消息:

@tree.command(name="test", description="test", guild=discord.Object(id=idnu))
async def lal(ctx, last: str):
    response = "strresponse"
    # 先告知Discord正在处理,避免超时提示
    await ctx.response.defer(ephemeral=False)
    # 发送频道消息
    await ctx.channel.send(response)
    # 可选:后续还能发送跟进消息
    await ctx.followup.send("命令已执行完毕")

关键说明

ctx.channel.send()只是普通的频道消息操作,和斜杠命令的交互确认是两个独立的流程——必须通过ctx.response下的方法(send_message/defer等)来完成命令的闭环,Discord才会移除“应用未响应”的提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:02:01