我如何清除聊天历史记录,在我的情况下是 Telegraf.js 的机器人聊天历史记录?我在 Telegram API 中看到有一种方法可以清除聊天历史记录:https ://core.telegram.org/method/messages.deleteHistory
有,但我在Telegrafmessages.deleteHistory()
文档上找不到任何东西。
那么如何使用 Telegraf 清除历史记录?
谢谢
我如何清除聊天历史记录,在我的情况下是 Telegraf.js 的机器人聊天历史记录?我在 Telegram API 中看到有一种方法可以清除聊天历史记录:https ://core.telegram.org/method/messages.deleteHistory
有,但我在Telegrafmessages.deleteHistory()
文档上找不到任何东西。
那么如何使用 Telegraf 清除历史记录?
谢谢
我试过这样的方法,但还不够。
bot.command('delete', (ctx) =>{
let k = 0;
for(let i = 0; i <= 100; i++ ){
k = ctx.message.message_id-i;
ctx.deleteMessage(k)
}
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。