首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能澄清聊天的历史?

我怎样才能澄清聊天的历史?
EN

Stack Overflow用户
提问于 2020-10-18 17:42:01
回答 3查看 4K关注 0票数 0

我如何清除聊天历史,在我的例子中,Bot聊天历史与Telegraf.js?我在电报API中看到了一种清除聊天历史的方法:https://core.telegram.org/method/messages.deleteHistory

WIth messages.deleteHistory(),但我在Telegraf文档上什么也找不到。

那么,我怎样才能用Telegraf来澄清历史呢?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2021-02-11 13:29:29

我试过这样的方法,但这还不够。

代码语言:javascript
复制
bot.command('delete', (ctx) =>{
let k = 0;
for(let i = 0; i <= 100; i++ ){
    k =  ctx.message.message_id-i;
    ctx.deleteMessage(k)
}
票数 2
EN

Stack Overflow用户

发布于 2020-10-19 19:11:35

Telegraf.js在幕后使用正式的电报机器人Api (使用HTTP访问)。

messages.deleteHistory()是一个核心API方法(使用MTProto协议访问)。还请注意,该方法只能由常规用户调用,而不能由Bots调用(即使您考虑使用基于mtproto的库)。(称呼它)

换句话说,Bots不能这样做,在HTTP中也没有这样的方法。您能做的最好的就是使用deleteMessage

使用此方法可以删除消息,包括服务消息,但有以下限制:

  • 只有在48小时前发送的消息才能被删除。
  • 只有在24小时前才能删除私人聊天中的骰子消息。
  • 机器人可以删除私人聊天、组和超级组中的传出消息。
  • 机器人可以在私人聊天中删除传入的消息。
  • 授予can_post_messages权限的机器人可以删除通道中的传出消息。
  • 如果bot是一个组的管理员,它可以删除其中的任何消息。
  • 如果bot在超级组或通道中具有can_delete_messages权限,它可以删除其中的任何消息。返回成功的真。
票数 0
EN

Stack Overflow用户

发布于 2022-11-29 10:32:38

代码语言:javascript
复制
bot.command('delete', async (ctx) => {
    let i = 0;
    while(true) {
        try {
            await ctx.deleteMessage(ctx.message.message_id - i++);
        } catch(e) {
            break;
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64416392

复制
相关文章

相似问题

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