πŸ€– Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ aiogram: пошаговоС руководство с простыми инструкциями πŸš€

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ с использованиСм aiogram?

Для создания ΠΊΠ½ΠΎΠΏΠΊΠΈ с использованиСм aiogram, Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс InlineKeyboardButton ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiogram. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram import Bot, types

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ
button = InlineKeyboardButton("НазваниС кнопки", callback_data="button_callback")

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ добавляСм ΠΊΠ½ΠΎΠΏΠΊΡƒ
keyboard = InlineKeyboardMarkup(row_width=1)
keyboard.add(button)

# ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
await bot.send_message(chat_id, "ВСкст с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ", reply_markup=keyboard)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сначала ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ классы ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiogram. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса InlineKeyboardButton, указывая тСкст ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ создаСм Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса InlineKeyboardMarkup ΠΈ добавляСм ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

НаконСц, ΠΌΡ‹ отправляСм сообщСниС с тСкстом ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ bot.send_message.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ aiogram

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расскаТу, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiogram. Aiogram - это асинхронный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-Π±ΠΎΡ‚ΠΎΠ² Π½Π° языкС Python. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΡ‚Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ со списком ΠΎΠΏΡ†ΠΈΠΉ.

Π¨Π°Π³ 1: Установка aiogram

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ aiogram. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install aiogram

Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ

Для создания ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ aiogram, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс InlineKeyboardMarkup. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ с тСкстом "НаТми мСня":

from aiogram import Bot, types

bot = Bot(token="YOUR_TOKEN")

keyboard = types.InlineKeyboardMarkup()
button = types.InlineKeyboardButton(text="НаТми мСня", callback_data="button_pressed")
keyboard.add(button)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ сначала ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ классы ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiogram. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм экзСмпляр класса InlineKeyboardMarkup, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса InlineKeyboardButton ΠΈ добавляСм Π΅Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° add.

Π¨Π°Π³ 3: ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° создана, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π±ΠΎΡ‚Π°. Для этого Π²Π°ΠΌ понадобится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ send_message:

from aiogram import Bot, types

bot = Bot(token="YOUR_TOKEN")

async def send_button():
    await bot.send_message(chat_id="USER_ID", text="НаТми ΠΊΠ½ΠΎΠΏΠΊΡƒ", reply_markup=keyboard)

button_pressed = False

@bot.callback_query_handler(lambda query: query.data == "button_pressed")
async def button_handler(query: types.CallbackQuery):
    global button_pressed
    button_pressed = True
    await bot.send_message(chat_id=query.message.chat.id, text="Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ")

asyncio.run(send_button())

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ сначала ΠΌΡ‹ создаСм Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ send_button, которая отправляСт сообщСниС с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ опрСдСляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ button_handler, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ. Если ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, устанавливаСтся Ρ„Π»Π°Π³ button_pressed ΠΈ отправляСтся сообщСниС ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiogram. Начиная с установки aiogram ΠΈ создания ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса InlineKeyboardMarkup, ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π±ΠΎΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° send_message. ИспользованиС ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΎΡ‚Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ со списком ΠΎΠΏΡ†ΠΈΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Telegram Π±ΠΎΡ‚ Π½Π° python aiogram #5 ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ

4 УРОК - ΠšΠ›ΠΠ’Π˜ΠΠ’Π£Π Π ReplyMarkup И ΠΠ”ΠœΠ˜ΠΠšΠ | ΠŸΠžΠ›ΠΠ«Π™ КУРБ ПО AIOGRAM

5 УРОК - ΠšΠ›ΠΠ’Π˜ΠΠ’Π£Π Π InlineKeyboard | ΠŸΠžΠ›ΠΠ«Π™ КУРБ ПО AIOGRAM

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ€– Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ aiogram: пошаговоС руководство с простыми инструкциями πŸš€