Модуль 9: Практика — Telegram-бот

Що таке Telegram Bot API та aiogram

📖 Теорія
Telegram Bot API — це інтерфейс для створення ботів у Telegram.

Що вміють боти:
• Відповідати на повідомлення та команди
• Надсилати текст, фото, документи
• Створювати кнопки та меню
• Працювати з базами даних

aiogram — сучасний асинхронний фреймворк для Telegram-ботів на Python.

Кроки для початку:
1. Знайдіть @BotFather у Telegram
2. Надішліть /newbot
3. Придумайте ім'я та username боту
4. Отримайте токен (довгий рядок виду 123456:ABC-DEF...)
5. Встановіть aiogram: pip install aiogram

Токен — це секрет! Не публікуйте його в коді. Зберігайте у змінних оточення або .env файлі.
💡 Приклад коду
Вивід:

                        
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Створіть бота в BotFather
20 XP
Зайдіть у Telegram, знайдіть @BotFather, надішліть /newbot та створіть свого бота. Скопіюйте токен. Напишіть програму, яка просто виводить: 'Мій бот створено! Токен отримано.' та ваше ім'я бота.
💡 Підказка: Це підготовче завдання. Просто використовуйте print() щоб вивести інформацію про бота.
🔓 Розв'язок:
bot_name = 'MyFirstPythonBot'
print('Мій бот створено!')
print(f'Ім\'я бота: @{bot_name}')
print('Токен отримано та збережено')
Вивід:

                                

2.
Завдання 2: Налаштування оточення
30 XP
Створіть файл .env та напишіть скрипт, який завантажує токен бота зі змінної оточення BOT_TOKEN. Скрипт повинен: перевірити, чи встановлено токен, вивести перші 5 символів токена та замаскувати решту зірочками, вивести довжину токена.
💡 Підказка: Використовуйте os.getenv() для читання змінної. Для маскування: token[:5] + '*' * (len(token) - 5).
🔓 Розв'язок:
import os
from dotenv import load_dotenv

load_dotenv()
token = os.getenv('BOT_TOKEN')

if token:
    masked = token[:5] + '*' * (len(token) - 5)
    print(f'Токен завантажено: {masked}')
    print(f'Довжина токена: {len(token)} символів')
    print('Все готово для запуску бота!')
else:
    print('Помилка: BOT_TOKEN не знайдено!')
    print('Створіть файл .env із вмістом:')
    print('BOT_TOKEN=ваш_токен_тут')
Вивід:

                                

3.
Завдання 3: Перевірка підключення до API
40 XP
Напишіть скрипт, який підключається до Telegram Bot API та отримує інформацію про вашого бота (метод getMe). Виведіть ім'я бота, username та id. Використовуйте модуль requests.
💡 Підказка: URL для запиту: https://api.telegram.org/bot{TOKEN}/getMe. Використовуйте requests.get(url).json() для отримання відповіді.
🔓 Розв'язок:
import os
import requests
from dotenv import load_dotenv

load_dotenv()
token = os.getenv('BOT_TOKEN')

url = f'https://api.telegram.org/bot{token}/getMe'
response = requests.get(url)
data = response.json()

if data['ok']:
    bot = data['result']
    print(f'Ім\'я бота: {bot["first_name"]}')
    print(f'Username: @{bot["username"]}')
    print(f'ID бота: {bot["id"]}')
    print('Підключення успішне!')
else:
    print(f'Помилка: {data["description"]}')
Вивід: