В этом уроке мы научимся использовать мощный фреймворк Aiogram 3 для создания ботов, которые будут более интерактивными и функциональными. Мы будем отправлять текстовые кнопки, запрашивать номер телефона и геолокацию пользователей, а также создавать увлекательные викторины и опросы. В результате вы получите все необходимые знания, чтобы создавать ботов, которые будут полезны для людей и захватывающими в использовании. Не упустите шанс научиться создавать такие боты — жмите Play и начинайте учиться уже сегодня!
Исходный код к уроку
handlers/basic.py
from aiogram import Bot
from aiogram.types import Message
import json
from core.keyboards.reply import reply_keyboard, loc_tel_poll_keyboard, get_reply_keyboard
async def get_start(message: Message, bot: Bot):
await message.answer(f'<s>Привет {message.from_user.first_name}. Рад тебя видеть!</s>',
reply_markup=get_reply_keyboard())keyboards/reply.py
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, KeyboardButtonPollType
from aiogram.utils.keyboard import ReplyKeyboardBuilder
reply_keyboard = ReplyKeyboardMarkup(keyboard=[
[
KeyboardButton(
text='Ряд 1. Кнопка 1'
),
KeyboardButton(
text='Ряд 1. Кнопка 2'
),
KeyboardButton(
text='Ряд 1. Кнопка 3'
)
],
[
KeyboardButton(
text='Ряд 2. Кнопка 1'
),
KeyboardButton(
text='Ряд 2. Кнопка 2'
),
KeyboardButton(
text='Ряд 2. Кнопка 3'
),
KeyboardButton(
text='Ряд 2. Кнопка 4'
)
],
[
KeyboardButton(
text='Ряд 3. Кнопка 1'
),
KeyboardButton(
text='Ряд 3. Кнопка 2'
)
]
], resize_keyboard=True, one_time_keyboard=True, input_field_placeholder='Выбери кнопку ↓', selective=True)
loc_tel_poll_keyboard = ReplyKeyboardMarkup(keyboard=[
[
KeyboardButton(
text='Отправить геолокацию',
request_location=True
)
],
[
KeyboardButton(
text='Отправить свой контакт',
request_contact=True
)
],
[
KeyboardButton(
text='Создать викторину',
request_poll=KeyboardButtonPollType()
)
]
], resize_keyboard=True, one_time_keyboard=False,
input_field_placeholder='Отправь локацию, номер телефона или создай викторину/опрос ↓')
def get_reply_keyboard():
keyboard_builder = ReplyKeyboardBuilder()
keyboard_builder.button(text='Кнопка 1')
keyboard_builder.button(text='Кнопка 2')
keyboard_builder.button(text='Кнопка 3')
keyboard_builder.button(text='Отправить геолокацию', request_location=True)
keyboard_builder.button(text='Отправить свой контакт', request_contact=True)
keyboard_builder.button(text='Создать викторину', request_poll=KeyboardButtonPollType())
keyboard_builder.adjust(3, 2, 1)
return keyboard_builder.as_markup(resize_keyboard=True, one_time_keyboard=True,
input_field_placeholder='Отправь локацию, номер телефона или создай викторину/опрос ↓')












