Как сделать подменю в телеграмм боте python
Перейти к содержимому

Как сделать подменю в телеграмм боте python

  • автор:

Как сделать подменю в telegram на языке python

при нажатии на эту кнопку должна выводиться подкатегория

Мне нужно сделать подменю в телеграмме на python При нажатии на кнопку «вывод подкатегории» должен появиться другой текст с кнопками пример:

 Товары: 

товар 1 товар 2

(товар 1 и товар 2 это кнопки при нажатии которых вылезает цена) Пример кода:

from telegram import Update, Bot, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler, ConversationHandler, CallbackContext from credits import bot_token #Включает бота, настройка бота. bot = Bot(token=bot_token) updater = Updater(token=bot_token, use_context=True) dispatcher = updater.dispatcher #команды; настройка команд. #меню при вызове /info def info(update, context):#при старте команды /info keyboard = [[InlineKeyboardButton("Вывод текста", callback_data='1'), InlineKeyboardButton("Вывод подкатегории(товаров)", callback_data='2')]] update.message.reply_text('Тест', reply_markup=InlineKeyboardMarkup(keyboard)) #----------------------------------------------------------------------------------------------------------------------------------------------------------- #реагирование на нажатие кнопок. def button(update, context): query = update.callback_query query.answer() #реагирование на кнопки первоначального меню(/info) if query.data == "1": context.bot.send_message(update.effective_chat.id, "вывод текста") elif query.data == "2": #вывод подменю при нажатие на "подкатегории" keyboard = [[InlineKeyboardButton("Товар 1", callback_data='2b_1'), InlineKeyboardButton("Товар 2", callback_data='2b_1')]] update.message.reply_text('Покупка товаров:', reply_markup=InlineKeyboardMarkup(keyboard)) #реагирование на кнопки подменю "buy gems" elif query.data == "2b_1": context.bot.send_message(update.effective_chat.id, "130 руб") elif query.data == "2b_2": context.bot.send_message(update.effective_chat.id, "350 руб") #вид команды info_handler = CommandHandler('info', info) #----------------------------------------------------------------------------------------------------------------------------------------------------------- button_handler = CallbackQueryHandler(button) #Добавление команд в диспетчер(бот реагирует на команды) dispatcher.add_handler(info_handler) #----------------------------------------------------------------------------------------------------------------------------------------------------------- dispatcher.add_handler(button_handler) #Важно не изменить. Обновление страницы получение сообщений. updater.start_polling() updater.idle() ``` 

Вопросы с меткой [python-telegram-bot]

Используйте эту метку, если Ваш вопрос связан с библиотекой python-telegram-bot.

96 вопросов без принятого ответа или без ответа, за который были отданы голоса
Конкурсные
Неотвеченные

  • Конкурсные 0
  • Неотвеченные
  • Цитируемые
  • Рейтинг
  • Неотвеченные (мои метки)

107 показов

Как сделать подменю в telegram на языке python

Мне нужно сделать подменю в телеграмме на python При нажатии на кнопку «вывод подкатегории» должен появиться другой текст с кнопками пример: Товары: товар 1 товар 2 (товар 1 .

задан 4 ноя 2022 в 8:09
48 показов

Не получается прописать календарь для telegram бота через telegram_bot_calendar

Я уже полгода изучаю python, это мой первый бот как учебное задание. Хочу сделать календарь для выбора нужной даты через telegram_bot_calendar, но не могу понять, почему тянется ошибка: TypeError: ‘.

задан 15 ноя 2023 в 12:37
80 показов

Не работает код для телеграм бот на python

Задача бота — получить картинку и текст от человека и отправить в лс админу чата. У админа появляется это сообщение и 2 кнопки: «переслать» или «отклонить». Ели переслать, то бот .

задан 4 авг 2023 в 16:19

Бот не отвечает

Нужно чтобы бот принимал сообщение от пользователся и передавал этот запрос в pymysql и возвращать пользователю. При отправке сообщения боту вылазит предупреждение в консоли: D:\POSLEDNIYBOT\lib\site-.

задан 2 фев 2023 в 17:15

Python-telegram-bot. Открыть меню «Прикрепить» после нажатия на кнопку

У бота есть всего одна кнопка — «Загрузить файл». По сценарию пользователь нажимает на нее, а затем загружает файл. Есть ли в библиотеке функционал, который позволит открыть меню с .

задан 7 дек 2022 в 12:30
85 показов

Бот в telegram не отвечает на команды на python

в консоли код ошибок не даёт, но в приложении telegram нет ответа на команды P.s.:В похожих сообщениях ответа не нашёл. import telebot; from telebot import types token = «Не буду палить» .

задан 4 ноя 2022 в 10:33

Как вместо текста отправить только кнопки выбора?

Телеграм бот на python. Задача реализовать ответ на сообщение пользователя в виде кнопочного меню. Использую библиотеку python-telegram-bot. Для ответа использую метод reply_text, вероятно ответ можно .

задан 9 апр 2022 в 16:13
532 показа

Как сделать, чтобы телеграм бот, написанный на Python, отвечал на разные сообщения главным меню?

Я написала телеграм бота на Python, c Inline кнопками, после команды /start у меня выпадает главное меню, в котором содержатся кнопки с названиями городов, мне надо чтобы это меню появлялось при .

задан 23 дек 2021 в 16:54
603 показа

Aiogram 2. Как игнорировать команды из чата? Бот должен реагировать только на команды в ЛС

Мне нужно чтобы бот не реагировал на команды /start /help ну и вообще все которые отправляют в чат. Мне нужно чтобы бот реагировал только на команды в ЛС, как это реализовать?

задан 27 окт 2022 в 9:15
204 показа

Генерация сообщения с выбранными товарами в телеграм боте

У меня есть список в котором хранятся кортежи с информацией о товаре. cart = [ (6754, ‘Футболка’, ’50 грн’, ‘XL’), (666, ‘Кроссовки Abibas’, ‘300 грн’, ’39’), (7954, ‘Штаны’, ’40 гривень’, .

задан 13 окт 2021 в 18:50

Смешались кнопки в телеграм-боте

Написал код телеграм-бота, начал проверять и тестировать. Возникает проблема: когда я отправляю фото или видео, он мне выдает текст (всё правильно, как задумано), но когда я нажимаю на кнопки (Удалить .

задан вчера

Проблема с функцией ответа пользователю при использовании reply_markup

Проблема заключается в следующем: При использовании await update.message.reply_text(text=»», reply_markup=keyboard) возникает ошибка InlineKeyboardButton.to_dict() got an unexpected keyword .

задан 13 фев в 9:28
27 показов

Телеграмм бот + MySQL бот ввиде личного кабинета

Всем добрый день, хочу сделать бота ввиде личного кабинета. Сначала он спрашивает никнейм если такой есть в БД, то запрашивает пароль и далее уже меню (сам сделаю). Мне нужна сама функция входа в .

задан 12 фев в 15:30

Получение данных платежа telebot

Настраиваю интеграцию платежей Telegram в YooKassa. С формированием платежей и их оплатой проблем нет, а вот с их обработкой — есть вопросы. Использую PyTelegramBotAPI. Формирование счета и отправка .

задан 26 янв в 11:32
36 показов

A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message text is empty

Написал код для вывода определенного ряда в Sqlite3, но при вводе в телеграмм боте Vincode выдает ошибку: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: .

  • python
  • sqlite3
  • python-telegram-bot
  • type-error
  • node-telegram-bot-api

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

Добрый день. Пишу телеграм-бота, через которого я буду управлять торговым роботом. Мне нужно, чтобы я через меню смог задать размер кредитного плеча для каждой из бирж на картинке. По нажатию на название биржи открывается соответственно новое подменю, и вот как мне в нем принять цифры?

Может, я плохо объяснил, но в общем: это мой первый опыт работы с тг-ботом и я пока просто повторял один урок на Ютубе. Парень делал меню боту просто по приходу определенных сообщений, я собственно реализовал так же (скриншоты 3-4), а вот теперь, когда нужно сделать для каждой биржи однотипные сообщения и как-то принимать не конкретные string, которые я в ифах сравниваю, а что угодно, что напишет пользователь — я не знаю, что делать.
628b785b02667356649269.png
628b7870a807a206995774.png
скриншот кода удален модератором.

  • Вопрос задан более года назад
  • 128 просмотров

2 комментария

Простой 2 комментария

Как создать меню второго уровня с inline кнопками (Telegram bot, Python)?

Имеется меню с инлайн кнопками, внутри которого хочу создать другое «подменю». Предположил, что правильнее всего сделать это с помощью bot.edit_message_reply_markup, но при запуске бота после клика на инлайн кнопку, которая должа вызвать следующее меню, бот крашится с ошибкой «Bad Request: message to edit not found». Подскажите, пожалуйста, нубу, в чем проблема может быть)

Надеюсь данного куска кода хватит для понимания:

@bot.callback_query_handler(func=lambda c: True) def inline_menu(c): if c.data == 'knopki2': knopki2 = types.InlineKeyboardMarkup() butt_1 = types.InlineKeyboardButton(text='Текст №1', callback_data='text1') butt_2 = types.InlineKeyboardButton(text='Текст №2', callback_data='text2') knopki2.add(butt_1, butt_2) bot.edit_message_reply_markup(chat_id=c.message.chat.id, inline_message_id=c.message.chat.id, reply_markup=knopki2)
  • Вопрос задан более трёх лет назад
  • 2947 просмотров

Комментировать
Решения вопроса 1
Михаил Кростелев @twistfire92
Python backend developer

Проблема в передаваемых параметрах. мало того, что вы передаете параметр inline_message_id вместо message_id, так еще и присваиваете ему id текущего чата, а нужен id сообщения. Попробуйте как описано ниже:

bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=knopki2)

Ответ написан более трёх лет назад
Нравится 1 1 комментарий
zenondd @zenondd Автор вопроса
Спасибо Вам! А то весь день сегодня не мог решить эту, казалось бы, элементарную задачу.
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +3 ещё

В боте когда я меняю переменую many += 1 выводиться ошибка?

  • 1 подписчик
  • 4 минуты назад
  • 3 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *