JavaRush /Курси /Модуль 4: FastAPI /Встановлення Telethon і налаштування проєкту

Встановлення Telethon і налаштування проєкту

Модуль 4: FastAPI
Рівень 19 , Лекція 1
Відкрита

Якщо ти хочеш автоматизувати задачі або побудувати повноцінного Telegram-бота, який вміє все — від моніторингу чатів до управління каналами — ти не зможеш обійтися без клієнтської бібліотеки для взаємодії з Telegram API. Telethon ідеально підходить для таких задач завдяки своєму асинхронному характеру.

Приклад реального застосування: написання скрипта, який автоматично відправляє важливі сповіщення співробітникам компанії в їхній Telegram-групі, або моніторинг активності в каналі та збір аналітики.


Встановлення Telethon

Крок 1: Установка бібліотеки через pip

Для початку роботи потрібно встановити бібліотеку Telethon. Нічого складного, просто відкриваєш термінал і вводиш:

pip install telethon

Але зачекай, це ще не все! Як то кажуть: «Встановив залежність? А ти її оновив?» Обов'язково онови pip перед встановленням, щоб уникнути проблем з версіями бібліотек:

pip install --upgrade pip

За кілька секунд (або довше, якщо твій інтернет прокидається повільно, як і більшість програмістів вранці) бібліотека опиниться в тебе на комп'ютері.

Крок 2: Перевіряємо, що все працює

Щоб переконатися, що установка пройшла успішно, зайди в Python-консоль і спробуй імпортувати бібліотеку:


from telethon import TelegramClient
print("Telethon успішно встановлено!")

Якщо ця команда не викинула помилку, вітаю — ти молодець! Йдемо далі.


Налаштування проєкту

Тепер перейдемо до створення проєкту і налаштування API-ключів, бо без цього ти навіть не достукаєшся до Telegram-серверів.

Крок 1: Створюємо структуру проєкту

Створи папку для проєкту. Нехай цього разу вона називається telegram_project. Все просто:

mkdir telegram_project
cd telegram_project

Тепер всередині створимо базову структуру:

.
├── main.py           # Головний файл з кодом
├── config.py         # Конфігурації і налаштування
└── .env              # Секретні ключі (API ID і API Hash)

Чому так? Розділення коду по файлах допомагає підтримувати порядок у проєкті. До того ж зберігання секретних даних у .env — це хороша практика безпеки.

Встанови бібліотеку для роботи з .env:

pip install python-dotenv

Крок 2: Отримуємо API ID і API Hash

Telegram API вимагає від тебе аутентифікації за допомогою пари ключів: API ID і API Hash. Ось як їх отримати:

  1. Зайди на сайт https://my.telegram.org.
  2. Авторизуйся за допомогою свого Telegram-акаунта.
  3. Перейдіть у розділ API Development Tools.
  4. Створи застосунок, вказавши довільну назву та платформу (можна вибрати Desktop).
  5. У результаті ти отримаєш API ID і API Hash.

Приклад даних, які ти отримаєш:

API ID: 123456
API Hash: abcdef1234567890abcdef1234567890

Крок 3: Налаштовуємо файл .env

Створи файл .env в корені проєкту і додай туди свої ключі:

API_ID=123456
API_HASH=abcdef1234567890abcdef1234567890
SESSION_NAME=telegram_session

Важливо! Ніколи не зберігай ключі прямо в основному коді. Це не лише поганий стиль, але й загроза безпеці (особливо якщо ти викладаєш проєкт на GitHub).

Крок 4: Налаштовуємо config.py

Тепер створимо модуль для читання даних із .env. Це буде наш config.py:


import os
from dotenv import load_dotenv

# Завантажуємо змінні оточення з .env
load_dotenv()

API_ID = int(os.getenv("API_ID"))
API_HASH = os.getenv("API_HASH")
SESSION_NAME = os.getenv("SESSION_NAME", "default")

Крок 5: Створюємо клієнта

Тепер ми готові створити клієнта у файлі main.py. Ось мінімальний приклад робочої конфігурації:


from telethon import TelegramClient
from config import API_ID, API_HASH, SESSION_NAME

# Створюємо клієнта Telegram
client = TelegramClient(SESSION_NAME, API_ID, API_HASH)

async def main():
    # Підключення клієнта
    await client.start()
    print("Клієнт успішно підключений!")

with client:
    client.loop.run_until_complete(main())

Крок 6: Перевіряємо підключення

Запусти main.py:

python main.py

При першому запуску Telethon попросить твій номер телефону і перевірочний код, який прийде в Telegram. Після авторизації створиться локальний файл сесії (наприклад, telegram_session.session), який можна буде використовувати надалі. Це дозволяє більше не вводити телефон і код при кожному запуску.

Якщо ти бачиш повідомлення "Клієнт успішно підключений!", значить усе налаштовано правильно.

Загальні поради та лайфхаки

  1. Робота з кількома ключами: якщо плануєш використовувати кілька акаунтів Telegram, зберігай їхні дані в окремих .env-файлах, наприклад, .env.account1, .env.account2.
  2. Ігноруй файл .env в Git: додай .env у .gitignore, щоб випадково не відправити свої секретні ключі в публічний репозиторій.

    Приклад .gitignore:

    .env
    *.session
    
  3. Оновлюй сесії: Якщо ти забув заблокувати стару сесію в Telegram, використай інтерфейс Telegram (налаштування конфіденційності) для розриву з'єднань.

Тепер у тебе в руках готовий інструмент для роботи з Telegram API. Ти можеш відправляти повідомлення, читати чати, моніторити канали і багато іншого. У наступній лекції ми будемо створювати Telegram-клієнта і розберемося, як взаємодіяти з API на більш глибокому рівні.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ