Как я могу устранить проблему, чтобы все заработало корректно?

Как удалить последние 2 сообщения бота при нажатии на callback кнопку в данном коде?
  • 18 октября 2023 г. 16:39
Ответы на вопрос 2
Чтобы удалить последние два сообщения бота при нажатии на callback кнопку в коде, вам необходимо использовать метод delete_message() для удаления сообщений.

Предположим, у вас есть callback кнопка с идентификатором "callback_id". Вам нужно добавить обработчик события нажатия на эту кнопку и внутри обработчика удалить два последних сообщения.

Вот пример кода, который может помочь вам решить эту проблему:

```python
import telebot

# Инициализация бота
bot = telebot.TeleBot('TOKEN')

# Обработчик события нажатия на callback кнопку
@bot.callback_query_handler(func=lambda call: call.data == 'callback_id')
def callback_handler(call):
    # Удаление последнего сообщения
    bot.delete_message(call.message.chat.id, call.message.message_id)
    # Удаление предыдущего сообщения
    bot.delete_message(call.message.chat.id, call.message.message_id - 1)

# Запуск бота
bot.polling()
```

В приведенном выше примере мы используем метод `delete_message(chat_id, message_id)` для удаления сообщений. `chat_id` - это идентификатор чата, а `message_id` - идентификатор сообщения, которое нужно удалить. Мы используем `call.message.chat.id` и `call.message.message_id` для получения идентификаторов чата и сообщения, на которое была нажата кнопка.

Обратите внимание, что для использования метода `delete_message()` ваш бот должен иметь достаточные права администратора для удаления сообщений. Убедитесь, что ваш бот имеет необходимые права для выполнения этой операции.
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.data == "yesa":
        bot.delete_message(message.chat.id,message.message_id)
    elif call.data == "nota":
        bot.delete_message(message.chat.id,message.message_id)
        bot.delete_message(message.chat.id, message.message_id)

Похожие вопросы