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

Discord-components库按钮功能正常但提示交互失败,如何消除该报错?

问题原因

所有Discord交互(包括按钮点击)都要求开发者在触发后3秒内返回响应,你当前的代码只完成了编辑原有消息的逻辑,没有对按钮点击事件本身做出响应,因此Discord会判定交互超时失败,弹出对应提示。

解决方法

在按钮点击的处理逻辑中,新增对交互事件的响应即可,如果你不需要弹出额外的提示内容,只需告知Discord交互已处理,使用延迟更新响应类型即可:

  1. 在编辑消息逻辑前,新增一行 await event.respond(type=6) (参数type=6是Discord定义的交互响应类型,代表「延迟更新消息」,使用该类型不会弹出任何提示,同时允许你后续编辑交互绑定的原消息,正好符合你的使用场景)
  2. 异常分支也需要补充响应逻辑,避免异常场景仍然报错

修改后的核心代码片段如下:

while True:
    event = await bot.wait_for("button_click", timeout=60.0)

    if event.channel is not ctx.channel:
        return

    if event.channel == ctx.channel:
        response = buttons.get(event.component.id)
        # 新增交互响应,告知Discord已收到请求
        await event.respond(type=6)
        if response:
            await msg.edit(embed=response)
        else:
            await event.channel.send("error, try again.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:45:01