Привет! Делюсь топовыми функциями, которые сделают ваш бот современным и удобным.
-
1️⃣ Интерактивные инлайн-кнопки с callback data
Теперь можно создавать динамические кнопки, которые реагируют на действия пользователя. Идеально для опросов, меню и навигации.from aiogram import types # Создаем клавиатуру с кнопками keyboard = types.InlineKeyboardMarkup() button1 = types.InlineKeyboardButton(text="Да", callback_data="yes") button2 = types.InlineKeyboardButton(text="Нет", callback_data="no") keyboard.add(button1, button2) # Обработчик нажатия на кнопку @dp.callback_query_handler(lambda c: c.data in ['yes', 'no']) async def process_callback(callback_query: types.CallbackQuery): if callback_query.data == 'yes': await bot.answer_callback_query(callback_query.id, "Вы выбрали Да!") else: await bot.answer_callback_query(callback_query.id, "Вы выбрали Нет!") -
2️⃣ Автоматическое сохранение состояния пользователя (FSM)
Больше не нужно хранить данные в базе данных! FSM (Finite State Machine) поможет управлять состоянием беседы.from aiogram.dispatcher.filters.state import State, StatesGroup from aiogram.dispatcher import FSMContext from aiogram.contrib.fsm_storage.memory import MemoryStorage class Form(StatesGroup): name = State() age = State() @dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await Form.name.set() await message.reply("Привет! Как тебя зовут?") @dp.message_handler(state=Form.name) async def process_name(message: types.Message, state: FSMContext): async with state.proxy() as data: data['name'] = message.text await Form.next() await message.reply("Сколько тебе лет?") -
3️⃣ Мини-приложения в боте
Добавляем интерактивные веб-интерфейсы прямо в Telegram!from aiogram import types # Создаем веб-приложение web_app = types.WebAppInfo(url="https://your-web-app.com") # Кнопка для открытия веб-приложения keyboard = types.InlineKeyboardMarkup() keyboard.add(types.InlineKeyboardButton(text="Открыть приложение", web_app=web_app)) await message.answer("Используйте наше приложение!", reply_markup=keyboard)
🎁 Бонус:
Для всех примеров не забудьте добавить хендлеры в ваш Application:
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.PHOTO, handle_photo))
application.add_handler(CommandHandler("remind", set_reminder))
🔥 Хотите крутой Telegram-бот для вашего бизнеса?
🎯 Всего одно сообщение - и ваш проект в надёжных руках.
Напишите «Хочу бота» в личку
Попробуйте внедрить эти фичи - пользователи оценят! А какие крутые функции есть в ваших ботах? Делитесь в комментариях 👇




Дискуссия