Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работают кнопки callback_data="back_to_menu"

Елисей Чухонцев Ученик (89), на голосовании 2 дня назад
from aiogram.utils.keyboard import InlineKeyboardBuilder

from config import CHANNEL_URL, REF_URL


class ClientKeyboard:



async def menu_keyboard():
ikb = InlineKeyboardBuilder()

ikb.button(text="?Регистрация", callback_data="register")
ikb.button(text="?Инструкция", callback_data="instruction")
ikb.button(text="?Получить сигнал?", callback_data="get_signal")

ikb.adjust(2, 1)

return ikb.as _markup()

async def register_keyboard():
ikb = InlineKeyboardBuilder()

ikb.button(text="?? Зарегестрироваться", url=REF_URL)
ikb.button(text="?Вернуться в главное меню",
callback_data="back_to_menu")

ikb.adjust(1)

return ikb.as _markup()

async def on_register_keyboard():
ikb = InlineKeyboardBuilder()

ikb.button(text="?Инструкция", callback_data="instruction")
ikb.button(text="?Получить сигнал?", callback_data="get_signal")
ikb.button(text="?Вернуться в главное меню",
callback_data="back_to_menu")

ikb.adjust(2, 1)

return ikb.as _markup()

async def back_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?Вернуться в главное меню",
callback_data="back_to_menu")

return ikb.as _markup()

async def mines_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="1",
callback_data="one")
ikb.button(text="3",
callback_data="three")
ikb.button(text="5",
callback_data="five")
ikb.button(text="7",
callback_data="sever")

return ikb.as _markup()

async def get_signal_keyboard():
ikb = InlineKeyboardBuilder()

ikb.button(text="?Получить сигнал?", callback_data="get_signal_again")
ikb.button(text="?Вернуться в главное меню",
callback_data="back_to_menu")

ikb.adjust(1)

return ikb.as _markup()
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (8536) 1 месяц назад
 import logging 
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.utils import executor
from aiogram.utils.keyboard import InlineKeyboardBuilder

logging.basicConfig(level=logging.INFO)

API_TOKEN = 'YOUR_API_TOKEN'

bot = Bot(token=API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)

async def menu_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?Регистрация", callback_data="register")
ikb.button(text="?Инструкция", callback_data="instruction")
ikb.button(text="?Получить сигнал?", callback_data="get_signal")
ikb.adjust(2, 1)
return ikb.as_markup()

async def register_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?? Зарегистрироваться", url='YOUR_REF_URL')
ikb.button(text="?Вернуться в главное меню", callback_data="back_to_menu")
ikb.adjust(1)
return ikb.as_markup()

async def on_register_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?Инструкция", callback_data="instruction")
ikb.button(text="?Получить сигнал?", callback_data="get_signal")
ikb.button(text="?Вернуться в главное меню", callback_data="back_to_menu")
ikb.adjust(2, 1)
return ikb.as_markup()

async def back_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?Вернуться в главное меню", callback_data="back_to_menu")
return ikb.as_markup()

async def mines_keyboard():
ikb = InlineKeyboardBuilder()
for num in [1, 3, 5, 7]:
ikb.button(text=str(num), callback_data=str(num))
return ikb.as_markup()

async def get_signal_keyboard():
ikb = InlineKeyboardBuilder()
ikb.button(text="?Получить сигнал?", callback_data="get_signal_again")
ikb.button(text="?Вернуться в главное меню", callback_data="back_to_menu")
ikb.adjust(1)
return ikb.as_markup()

@dp.callback_query(lambda c: c.data == "back_to_menu")
async def back_to_menu_handler(callback_query: types.CallbackQuery):
logging.info("Back to menu button clicked")
await callback_query.answer()
await callback_query.message.edit_text("Вы в главном меню.", reply_markup=await menu_keyboard())

@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
await message.answer("Добро пожаловать! Выберите опцию:", reply_markup=await menu_keyboard())

if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Похожие вопросы