-1

我如何清除聊天历史记录,在我的情况下是 Telegraf.js 的机器人聊天历史记录?我在 Telegram API 中看到有一种方法可以清除聊天历史记录:https ://core.telegram.org/method/messages.deleteHistory

有,但我在Telegrafmessages.deleteHistory()文档上找不到任何东西。

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

谢谢

4

2 回答 2

1

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

bot.command('delete', (ctx) =>{
let k = 0;
for(let i = 0; i <= 100; i++ ){
    k =  ctx.message.message_id-i;
    ctx.deleteMessage(k)
}
于 2021-02-11T13:29:29.853 回答
0

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

并且messages.deleteHistory()是一个核心 API 方法(使用 MTProto 协议访问)。另请注意,该方法只能由普通用户而不是机器人调用(即使您考虑使用基于 mtproto 的库。调用它)

换句话说,Bots 无法做到这一点,并且 HTTP bot API 中没有这种方法。你能做的最好的就是使用deleteMessage.

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

  • 只有在不到 48 小时前发送的消息才能被删除。
  • 私聊中的骰子消息只有在超过 24 小时前发送才能被删除。
  • 机器人可以删除私人聊天、群组和超级群组中的传出消息。
  • 机器人可以删除私人聊天中的传入消息。
  • 授予 can_post_messages 权限的机器人可以删除频道中的传出消息。
  • 如果机器人是组的管理员,它可以删除那里的任何消息。
  • 如果机器人在超级组或频道中拥有 can_delete_messages 权限,它可以删除那里的任何消息。成功时返回 True。
于 2020-10-19T19:11:35.363 回答