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

Pyrogram+pyromod如何删除ask()方法发送的询问消息

问题原因

app.ask()的返回值是用户针对提示提交的输入消息对象,并非机器人发送的"enter: "提示消息本身,直接对返回值调用delete()只会删除用户发送的内容,无法触达机器人发出的提示消息。

正确实现代码

pyromod的ask返回对象自带指向提示消息的属性,同时删除两个消息对象即可:

@app.on_message(filters.command("test", prefixes=".") & filters.text)
async def TestPyromod(_,msg):
    user_reply = await app.ask(msg.chat.id, "enter: ")
    # 删除用户提交的输入消息
    await user_reply.delete()
    # 删除机器人发送的"enter: "提示消息
    await user_reply.request.delete()
适配说明
  • 上述写法适配pyromod 2.0及以上正式版本。如果你使用的是早期开发版,提示消息的属性名可能为question,若调用request时报错,可替换为await user_reply.question.delete()。
  • 如果需要连带删除用户最初触发指令的.test消息,直接在逻辑中添加await msg.delete()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:57:52