Как удалить клавиатуру Telegram bot python

Встала задача, чтобы при нажатии обычной кнопки передачи геопозиции бот отвечал сообщением с инлайн-кнопками, но при этом пропадала кнопка передачи геопозиции. В await message.answer я могу либо указывать инлайн-клавиатуру, либо удаление обычной клавиатуры:

Как я могу это объединить?

Вот Вам вариант решения, возможно он не самый оптимальный, но, все же, является действенным и полностью соответствует Вашему запросу.

Код выполняет следующий алгоритм: 1) Пользователь инициирует /start и получает обычную кнопку «Отправить геопозицию»; 2) Пользователь решается на это не самое безопасное действие и отправляет свою геопозицию; 3) Ваш добропорядочный бот оправляет пользователю сообщенние с его геопозицией (в этом тестовом примере); 4) К этому сообщению бот прикрепляет 2 инлайн кнопки; 5) В тоже время бот выполняет процедуру удаления обычной кнопки «Отправить геопозицию».

Aiogram как удалить replykeyboardmarkup

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python telegram-bot или задайте свой вопрос.

Как удалить клавиатуру telegram bot python

Как скрыть клавиатуру telebot

TELEGRAM БОТ С КЛАВИАТУРОЙ НА PYTHON ЗА 15 МИНУТ

? Посмотрите другие вопросы с метками python python-3.x telebot клавиатура или задайте свой вопрос.
  1. id — уникальный идентификатор пользователя в Telegram
  2. last_name — значение поля фамилия, может быть пустым
  3. first_name — значение поля имя, может быть пустым
  4. username — уникальное значение текстовый идентификатор, может быть пустым
  5. language_code — кодовое обозначение выбранного языка интерфейса приложения (en, ru . )
  6. is_bot — флаг, определяющий пользователя как бота, в случае с ботом равен 1, в случае с пользователем пустое значение
Еще по теме:  Не записываются кружочки в Телеграмм
KeyboardButton
  1. text — текст который будет на отображен на кнопке, обязательный параметр, поддерживает текст и смайлики (эмодзи)
  2. request_contact — если параметр установлен в true, пользователь отправит в бот свой номер телефона на который зарегистрирован аккаунт
  3. request_location — если параметр установлен в true, пользователь отправит в бот свое текущее местоположение
  1. keyboard — массив кнопок (объекты KeyboardButton)
  2. resize_keyboard — если предать true, то клавиатура подгонится по высоте до возможного минимума.
  3. one_time_keyboard — возможность скрывать клавиатуру после ее использования
  4. selective — если надо показать клавиатуру только определенным пользователям
InlineKeyboardButton

  1. action — действие, в нашем случае это vote
  2. type — тип кнопки: 1 — левая, 0 — правая
  3. count1 — текущее значение левой кнопки
  4. count2 — текущее состояние правой кнопки
  1. При получении команды /start — мы выводим приветственное слово и набор кнопок: Голосовать, Помощь.
  2. При получении команды Помощь, выводим простое текстовое сообщение.
  3. При получении команды Голосовать, выводим текстовое сообщение и набор встроенных кнопок с параметром callback_data.
  4. При получении не запланированного значения, выводим текстовое сообщение.
  5. И самое интересное это когда принимаем значение в начале которого стоит action , в нашем случае это vote. Мы формируем новую клавиатуру изменяем в ней текстовое значение, увеличиваем счетчик у нажатой кнопки и подставляем новую служебную информацию в параметрах callback_data.
    — меняем клавиатуру у заданного сообщения — позволяет выводить уведомление о проделанной работе CallbackQuery, мы его используем, уведомляя пользователя что он удачно проголосовал.

Telegram Bot PYTHON [ 2 ] | Команды и кнопки (Inline, Reply)

Как сделать кнопки в боте Телеграм на Python?

1630936303307.png

То, что цепляется к низу экрана вашего устройства, будем называть обычными кнопками , а то, что цепляется непосредственно к сообщениям, назовём инлайн-кнопками.

Еще по теме:  Что такое облачный пароль в Телеграмме как его найти в телефоне

1630936467809.png

1630936645552.png

1630936721202.png

1630937310331.png

1630937507625.png

И, казалось бы, всё работает:

1630937714783.png

С этой ошибкой вы, скорее всего, будете поначалу часто сталкиваться, пытаясь редактировать сообщения.
Но, в действительности, решается проблема очень просто: мы проигнорируем исключение MessageNotModified.

Похожие публикации:

  1. Как записать звук на айфоне
  2. Как понять является ли число степенью двойки
  3. Как развернуть таблицу в excel на 90 градусов
  4. Телефон сам удаляет фото что делать

Источник: big-soviet.ru

Как удалить клавиатуру?(Python telegram bot, keyboard_remove)

Когда получаете следующее сообщение, добавьте строку:

await message.answer(«Клавиатура скрыта», reply_markup=types.ReplyKeyboardRemove())

Отслеживать
ответ дан 11 авг 2021 в 13:48
128 9 9 бронзовых знаков

Т.к. удалить кнопки так и не вышло, нашел другой подход:

отправляем запрос контакта.

После полученного номера, отправляем другую клавиатуру

а вот такую клавиатуру уже можно и удалить

Отслеживать
ответ дан 12 авг 2021 в 13:44
53 8 8 бронзовых знаков

  • python
  • telegram-bot
  • клавиатура
    Важное на Мете

Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник: ru.stackoverflow.com

Есть ли функция для удаления InlineKeyboardMarkup после ответа пользователя? (Python-телеграмма-бот)

Я ищу способ удалить кнопку встроенной клавиатуры после того, как пользователь ответил. Бот телеграммы попросит пользователя выбрать вариант после того, как пользователь вводит / по умолчанию. Я хочу убрать возможность для пользователя нажимать кнопку ответа несколько раз. Ниже мой пример кода, я использую пакет python-telegram-bot.

list_default_options = [‘a’, ‘b’, ‘c’, ‘d’] def default_options(update, context): «»»Generates responses for default options.»»» button_list = [] for each in list_options: button_list.append(InlineKeyboardButton(each, callback_data=each)) reply_markup = InlineKeyboardMarkup(build_menu(button_list, n_cols=2)) context.bot.send_message(chat_id=update.message.chat_id, text=»Choose option», reply_markup=reply_markup) def build_menu(buttons, n_cols=1, header_buttons=None, footer_buttons=None): «»» Returns a list of inline buttons used to generate inlinekeyboard responses :param buttons: `List` of InlineKeyboardButton :param n_cols: Number of columns (number of list of buttons) :param header_buttons: First button value :param footer_buttons: Last button value :return: `List` of inline buttons «»» menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)] if header_buttons: menu.insert(0, header_buttons) if footer_buttons: menu.append(footer_buttons) return menu def query_default_option(update, context): «»»Callback function when inline response is selected»»» print(«Default Option: » + update.callback_query.data) context.bot.send_message(chat_id=update.effective_chat.id, text=»Registered: » + update.callback_query.data) def main(): # Define telegram updater and dispatcher updater = Updater(token=API_KEY, use_context=True) dp = updater.dispatcher # Register handlers # Different commands or Text dp.add_handler(CommandHandler(‘start’, start)) dp.add_handler(MessageHandler(Filters.text https://stackru.com/questions/58033429/est-li-funktsiya-dlya-udaleniya-inlinekeyboardmarkup-posle-otveta-polzovatelya-p» target=»_blank»]stackru.com[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...