Иногда после обработки заявки или выполнения действия необходимо убрать клавиатуру из уже отправленного сообщения. Для этого используется метод tg.editMessageReplyMarkup. Ниже найдете подробную инструкцию
Автор статьи Антоний Павлов - разработчик Telegram-ботов и мини-приложений
Запрос
После выполнения запроса клавиатура будет удалена из указанного сообщения
https://api.puzzlebot.top/?token={{token_puzzlebot}}&method=tg.editMessageReplyMarkup&chat_id=-{{chat_id}}&message_id={{message_id}}&reply_markup=()
Параметры, которые используются в запросе
token_puzzlebot - это API-токен вашего бота. Получить его можно в:
Настройки → Интеграции → Входящие запросы → Сгенерировать API-токен
Рекомендуется сохранить токен в глобальную переменную и использовать её во всех запросах. Например: {{token_puzzlebot}}
2. chat_id - это ID чата, в котором находится сообщение. Получить его можно из ссылки на сообщение в самом чате
Например: https://t.me/c/2039518651/8020/22961
Из ссылки берем: 2039518651
Для использования в API необходимо добавить префикс -100: -1002039518651
Именно это значение используется в параметре chat_id
3. message_id - это ID конкретного сообщения, у которого нужно удалить клавиатуру.
Например: https://t.me/c/2039518651/8020/22961
ID сообщения: 22961
Именно это значение необходимо передать в параметре message_id
Автоматическое получение ID сообщения
В PuzzleBot доступны системные переменные:
LAST_BOT_MESSAGE_ID_****** LAST_USER_MESSAGE_ID_******
Часто требуется заранее определить ID следующего сообщения, которое будет отправлено ботом. Это удобно, если нужно записать ID сообщения прямо в кнопку этого же сообщения, чтобы позже по нажатию удалить клавиатуру.
Используйте формулу:
if(LAST_BOT_MESSAGE_ID_****** > LAST_USER_MESSAGE_ID_******, LAST_BOT_MESSAGE_ID_******, LAST_USER_MESSAGE_ID_******)+1
Как работает формула:
Сравнивает последний ID сообщения бота и пользователя
Выбирает больший ID
Прибавляет 1
Возвращает ID следующего сообщения
Пример использования
Запрос на удаление клавиатуры:
https://api.puzzlebot.top/?token=ВАШ_ТОКЕН&method=tg.editMessageReplyMarkup&chat_id=-1002039518651&message_id=22961&reply_markup=()
После выполнения запроса:
сообщение останется в чате
клавиатура будет удалена
пользователь больше не сможет нажимать кнопки в этом сообщении
Наиболее частые сценарии использования:
обработка заявок
закрытие тикетов
подтверждение действий пользователя
отключение старых кнопок после выбора варианта
предотвращение повторного нажатия на кнопку
Такой подход позволяет избежать повторной обработки одного и того же действия и делает интерфейс бота более понятным для пользователя






