Очистка чата пользователя с телеграмм ботом от всех сообщений
Мне нужно очищать приватный чат пользователя с Telegram-ботом от всех сообщений, или как-то пересоздавать для него чат. Допустим, ввожу команду /start, отображается текст с Inline кнопками. Когда пользователь нажимает на какую-либо из кнопок или пишет команду, с помощью message.edit_text(), меняется содержимое сообщения от бота. Но когда я ввожу повторно команду /start, мне нужно чтобы весь чат очищался, хотя бы локально для пользователя.
Ответы (1 шт):
Автор решения: cool rage
→ Ссылка
Примерный код, который должен помочь:
def start(update, context):
# Получаем chat_id и user_id отправителя сообщения
chat_id = update.effective_chat.id
user_id = update.effective_user.id
# Удаляем все сообщения пользователя и бота в личном чате
messages = context.bot.get_chat_history(chat_id)
for message in messages:
# Проверяем, что сообщение не является командой /start
if message.text != '/start':
context.bot.delete_message(chat_id, message.message_id)
В /start
# Сохраняем id нового сообщения пользователя в контекст
context.chat_data['user_messages'] = [message.message_id]
таким образом, используя context можно хранить в нем ид пользователя и при втором вызове /start чистить лс.