首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Disnake:删除短暂交互响应

Disnake:删除短暂交互响应
EN

Stack Overflow用户
提问于 2022-07-25 09:11:12
回答 1查看 423关注 0票数 0

我有一个机器人,允许用户玩游戏与斜杠的命令。机器人用短暂的信息来响应。为了保持它的整洁,它希望删除一些响应(例如,如果用户在几分钟后没有反应)。然而,我正在努力消除短暂的信息。

该机器人正在发送以下响应:

代码语言:javascript
复制
await inter.send(file=file, embed=embed,components=components, ephemeral=True)

如果是ephermal=False,下面的代码将删除bot响应:

代码语言:javascript
复制
await inter.delete_original_message()

但是,如果是ephermal=True,则在尝试删除消息时会出现以下错误:

代码语言:javascript
复制
Traceback (most recent call last):                                                                                                                      
File "/usr/local/lib/python3.8/site-packages/disnake/ext/commands/slash_core.py", line 680, in invoke                                                 
await call_param_func(self.callback, inter, self.cog, **kwargs)                                                                                     
File "/usr/local/lib/python3.8/site-packages/disnake/ext/commands/params.py", line 817, in call_param_func                                            
return await maybe_coroutine(safe_call, function, **kwargs)                                                                                         
File "/usr/local/lib/python3.8/site-packages/disnake/utils.py", line 580, in maybe_coroutine                                                          
return await value                                                                                                                                  
File "/code/cogs/game.py", line 271, in game                                                                                                
await game(                                                                                                                                    
File "/code/cogs/game.py", line 189, in game                                                                                               
await inter.delete_original_message()                                                                                                               
File "/usr/local/lib/python3.8/site-packages/disnake/interactions/base.py", line 526, in delete_original_message                                      
await deleter                                                                                                                                       
File "/usr/local/lib/python3.8/site-packages/disnake/webhook/async_.py", line 222, in request                                                         
raise NotFound(response, data)                                                                                                                      
disnake.errors.NotFound: 404 Not Found (error code: 10008): Unknown Message

还有另一种删除短暂消息的方法吗?

相关文档部分:https://docs.disnake.dev/en/latest/api.html#disnake.ApplicationCommandInteraction.delete_original_message

编辑:设置我收到的临时消息的delete_after属性:

代码语言:javascript
复制
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: ValueError: ephemeral messages can not be deleted via endpoints

我想这是一种暗示,表明不和谐不允许通过API以任何方式删除短暂的消息。

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 17:58:22

您已经知道了,但是总的来说,不和谐的API不允许您删除一条短暂的消息。您能得到的最好结果是更改消息内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73106659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档