Telegraf JS:如何清除聊天记录?

时间:2020-10-18 17:42:01

标签: node.js telegram-bot telegram-api telegraf.js

如何清除TeleTalk.js的聊天记录?我在Telegram API中看到有一种方法可以清除聊天记录:https://core.telegram.org/method/messages.deleteHistory

messages.deleteHistory(),但我在Telegraf文档中找不到任何内容。

那么我该如何使用Telegraf清除历史记录?

谢谢

2 个答案:

答案 0 :(得分:1)

这样的方法我试过了,还是不行。

bot.command('delete', (ctx) =>{
let k = 0;
for(let i = 0; i <= 100; i++ ){
    k =  ctx.message.message_id-i;
    ctx.deleteMessage(k)
}

答案 1 :(得分:0)

Telegraf.js在幕后使用官方的Telegram BOT Api(通过HTTP访问)。

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

换句话说,Bot无法做到这一点,并且HTTP bot API中没有这样的方法。最好的办法是使用deleteMessage

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

  • 仅在少于48小时前发送邮件才能删除。
  • 私人聊天中的骰子消息只有在24小时前发送后才能删除。
  • 机器人可以删除私人聊天,群组和超级群组中的传出消息。
  • 机器人可以删除私人聊天中的传入消息。
  • 授予can_post_messages权限的机器人可以删除频道中的传出消息。
  • 如果漫游器是网上论坛的管理员,则可以在其中删除任何消息。
  • 如果漫游器在超级组或通道中具有can_delete_messages权限,则它可以删除那里的任何消息。成功返回True。