@eeeeeeeeee

Как создать кнопку назад в телебот пайтон?

import telebot
from telebot import types

bot = telebot.TeleBot('')


@bot.message_handler(commands=["start"])
def main(message):
    markup_one = types.InlineKeyboardMarkup()
    btn_one = types.InlineKeyboardButton("‍Зв'язок з службою підтримки", callback_data='new_site')
    markup_one.row(btn_one)
    btn = types.InlineKeyboardButton("Відновити пароль до акаунта", url='https://www.youtube.com/')
    markup_one.row(btn)
    btn_two = types.InlineKeyboardButton("Сайт", url='https://www.youtube.com/')
    btn_three = types.InlineKeyboardButton("Форум", url='https://www.youtube.com/')
    btn_four = types.InlineKeyboardButton("Магазин", url='https://www.youtube.com/')
    markup_one.row(btn_two, btn_three, btn_four)
    file = open('image/5926747860378960618_120.jpg', 'rb')
    bot.send_photo(message.chat.id, file,
                   caption=f'Вітаю, {message.from_user.first_name}!\n\n Я — твій віртуальний помічник у світі UKRAINE '
                           f'GTA.\n\n Для початку, обери бажану дію:', reply_markup=markup_one)


@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
    if callback.data == 'new_site':
        bot.delete_message(callback.message.chat.id, callback.message.message_id)
        markup_one = types.InlineKeyboardMarkup()
        btn_one = types.InlineKeyboardButton("Підключити оператора", url='https://www.youtube.com/')
        markup_one.row(btn_one)
        btn_two = types.InlineKeyboardButton("◀️Назад", callback_data='go_back')
        markup_one.row(btn_two)
        file = open('image/5926747860378960618_120.jpg', 'rb')
        bot.send_photo(callback.message.chat.id, file,
                       caption=f"Вітаю, {callback.message.from_user.first_name}!\n\n Якщо у вас виникли питання або проблема яка пов'язана з нашим "
                               f"проектом, ви завжди можете звернутись до нашої служби підтримки.\n\nГрафік роботи:\nз "
                               f"12:00 до 23:00\n\nДля зв'язку з агентом підтримки натисніть кнопку:\n'Підключити "
                               f"оператора'.", reply_markup=markup_one)


@bot.callback_query_handler(func=lambda callback: True)
def go_back(callback):
    if callback.data == 'go_back':
        bot.delete_message(callback.message.chat.id, callback.message.message_id)


bot.polling(non_stop=True)
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@SIROJA04
Смысла от второго хендлера колбеков нет, он просто отработает на первом и остановит(go_back обрабатывай в сallback message).
В кнопке назад ничего сложного, ты просто на колбек заного отрисовываеш кнопки с /start(они никак не меняються поэтому определи их вне хендлера, уменьшиш кол-во кода)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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