命令引发异常:NotFound: 404 Not Found (error code: 0): Interaction is unknown (你已经响应了交互)
Posted
技术标签:
【中文标题】命令引发异常:NotFound: 404 Not Found (error code: 0): Interaction is unknown (你已经响应了交互)【英文标题】:Command raised an exception: NotFound: 404 Not Found (error code: 0): Interaction is unknown (you have already responded to the interaction) 【发布时间】:2022-01-19 09:05:25 【问题描述】:这是我的代码。 当我第二次使用该命令时,它会引发以下异常。 discord.ext.commands.errors.CommandInvokeError: Command raise an exception: NotFound: 404 Not Found (error code: 0): 交互未知(你已经响应了交互或者响应时间过长)
例如,首先如果我使用“button hi”命令并单击它返回 hi。第二次,当我使用相同的命令“button hello”并单击按钮时,这一次它会抛出上述异常并返回“hi”而不是“hello”。
@bot.command()
async def button(ctx, *, args):
await ctx.send("hello", components=[
[Button(label="Hi", style="3", custom_id="button1")]
])
while True:
interaction = await bot.wait_for("button_click", check=lambda i: i.custom_id == "button1")
await interaction.send(content=args, ephemeral=True)
我正在使用 discord_components 库。 抱歉解释不好。任何帮助将不胜感激。
【问题讨论】:
你必须为此构建一个监听器。如果您执行一次命令,您也可以只单击一次按钮。 (如果我理解正确的话) @Dominik,你能试着用一个例子来解释一下吗? 您是使用同一个按钮两次还是执行命令两次然后单击按钮一次? 我在帖子中的意思是,第二次使用相同的命令,内容没有得到更新。它只是返回我第一次使用的参数。 如果我删除 while 循环,每次我使用该命令时内容都会更新。但是我不能点击按钮两次,因为它显示交互失败。 【参考方案1】:我通过discord_components官方discord服务器找到了答案。我需要使用它的 id 检查点击了什么消息。
@bot.command()
async def button(ctx, *, args):
message = await ctx.send("hello", components=[
[Button(label="Hi", style="3", custom_id="button1")]
])
while True:
interaction = await bot.wait_for("button_click", check=lambda i: i.message.id == message.id)
await interaction.send(content=args, ephemeral=True)
【讨论】:
以上是关于命令引发异常:NotFound: 404 Not Found (error code: 0): Interaction is unknown (你已经响应了交互)的主要内容,如果未能解决你的问题,请参考以下文章
在IDEA中使用密码连接GitHub报错“lnvalid authentication data. 404 Not Found - NotFound“
Spring Boot Security 不会抛出 401 Unauthorized Exception but 404 Not Found