@shamraimaxim

[Telegram Bot] Как получить callback после ReplyKeyboardMarkup?

import telebot
from telebot import types

from example2.models import User

token = "YOUR API"
bot = telebot.TeleBot(token)


@bot.message_handler(commands=['start'])
def start(message):
    create_main_menu(message, f"Hi, {message.from_user.first_name or ''}"
                              f" {message.from_user.last_name or ''}")


def create_main_menu(message, bot_answer):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
    item1 = types.KeyboardButton('➕ ADD Crypto')
    item2 = types.KeyboardButton('➖ SUB Crypto')
    item3 = types.KeyboardButton('❎ DEL Crypto')
    item4 = types.KeyboardButton(' SHOW Crypto')

    markup.add(item1, item2, item3, item4)
    bot.send_message(message.chat.id,
                     bot_answer,
                     reply_markup=markup)


@bot.message_handler(content_types=['text'])
def work_with_buttons(message):
    if message.chat.type == 'private':
        if message.text == '➕ ADD Crypto':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item1 = types.KeyboardButton('⬅️ Return back')
            markup.add(item1)
            bot.send_message(message.chat.id,
                             "Enter the name of crypto",
                             reply_markup=markup)
             # как дальше обработать запрос?
        elif message.text == '➖ SUB Crypto':
            pass
        elif message.text == '❎ DEL Crypto':
            pass
        elif message.text == ' SHOW Crypto':
            pass
        elif message.text == '⬅️ Return back':
            create_main_menu(message, "You are in main menu")
        else:
            bot.send_message(message.chat.id,
                             "I don't understand you!")


bot.infinity_polling()


Хочу сделать маленькую задачку телеграм-бота, который будет связан с криптоваляютами(добавлять, убавлять, удалять и тд). Вопрос вот в чём, как после нажатия кнопки "➕ ADD Crypto" обработать ввод значения чтобы потом я мог записать значение в переменную?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Werewolfe
Погромист и любитель Linux
Использовать конечный автомат (машина состояний), и при отправке сообщения с кнопки выполнять действия или inline button так как к ним можно сделать callback.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы