Telegram API дає потужний інструмент для взаємодії з величезним набором функцій. Це може бути все — від отримання історії повідомлень і списку учасників до автоматизації рутинних завдань, наприклад відправлення повідомлень або модерування чатів.
Перш ніж ти зможеш почати працювати, Telegram попросить тебе зареєструвати додаток. Взамін ти отримаєш два ключі: API ID і API Hash. Ці ключі дають доступ до твоїх дій через Telegram API. Уяви їх як унікальні ідентифікатори твого додатку.
Швидка аналогія: уяви собі, що Telegram — це величезний клуб, а твій API ID — твій персональний жетон, який дозволяє тобі заходити в клуб і замовляти коктейлі від імені твого додатку.
Створення Telegram Application для отримання API ID і API Hash
Перш ніж писати код, потрібно зареєструвати наш додаток в Telegram. Це робиться один раз, але дуже важливо.
- Крок 1: Напиши Telegram-боту
@BotFather.
Цей бот — "батько всіх ботів", він допоможе з ботами. Але для реєстрації додатків потрібно звертатися до@my.telegram.org. - Крок 2: Перейди на my.telegram.org.
Увійди за допомогою свого номера телефону. Telegram надішле код для підтвердження. - Крок 3: Зареєструй свій додаток.
Як тільки увійдеш, вибери API Development Tools. Потім вкажи інформацію про свій додаток: назву, короткий опис, платформу і мету використання. - Крок 4: Отримай свій API ID і API Hash.
Після реєстрації Telegram видасть пару ключів: унікальнийAPI IDіAPI Hash. Зберігай їх у безпеці, як паролі. Жарт про "якщо хтось дізнається твої ключі, він зможе викликати API від твого імені" тут доречний.
Створюємо Telegram-клієнта з Telethon
Тепер, коли в нас є наші чарівні ключі, можна починати підключення до Telegram через Telethon. Це буде база для роботи зі всіма функціями.
Установка залежності
Якщо ти пропустив момент з установкою Telethon раніше, ось ще один шанс:
pip install telethon
Порада: якщо працюєш у віртуальному оточенні — молодець! Якщо ні, краще налаштуй середовище.
Підключення до Telegram API
Настав час написати перший реальний код. Ми створимо просту програму, яка підключається до твого Telegram-акаунту.
from telethon import TelegramClient
# Замініть ці значення своїми власними API ID і API Hash
api_id = 'ВАШ_API_ID'
api_hash = 'ВАШ_API_HASH'
# Ім'я для збереження сесії (можна вибрати будь-яке)
session_name = 'my_session'
# Створення клієнта
client = TelegramClient(session_name, api_id, api_hash)
async def main():
# Підключення до Telegram
await client.start()
# Твій username
me = await client.get_me()
print(f"Привіт, {me.username}! Ти успішно підключився.")
# Завершуємо з'єднання
await client.disconnect()
# Запускаємо програму
client.loop.run_until_complete(main())
Ось і все! Цей код:
- Підключається до Telegram.
- Авторизує твій акаунт.
- Отримує інформацію про твого користувача.
Пояснення коду
-
TelegramClient:
Це клас з бібліотеки Telethon, який слугує мостом між твоїм застосунком і Telegram API. Ми передаємо йому:session_name: файл, у якому буде безпечно зберігатися інформація про сесію.api_idіapi_hash: твої ключі з Telegram.
- Асинхронний метод
start:
Цей метод ініціює з'єднання з Telegram. Якщо ти використовуєш акаунт вперше, він попросить ввести номер телефону та код підтвердження. - Метод
get_me:
Він повертає твої дані: username, id та іншу базову інформацію. -
client.loop.run_until_complete(main()):
Дозволяє запустити асинхронну функціюmain. Чому так? Тому що Python (ще) не запускаєasyncфункції сам по собі — їх треба явно запускати.
Збереження сесії: навіщо?
Тобі не доведеться вводити код підтвердження щоразу, коли клієнт підключається. Вся інформація про сесію зберігається автоматично у файл (в нашому випадку: my_session.session). Це зручно, але вимагає відповідального ставлення. Не передавай цей файл іншим людям.
Якщо хочеш працювати з кількома акаунтами, просто використовуй різні імена для сесій (наприклад, my_session_user1 і my_session_user2).
Типові проблеми і як їх вирішити
- Проблема 1: "API_ID_INVALID".
Це повідомлення з'явиться, якщо неправильно вказаноapi_idабоapi_hash. Перевір їх ще раз. - Проблема 2: Код підтвердження не приходить.
На етапі авторизації Telegram надсилає код у додаток Telegram. Перевір свій Telegram — можливо, повідомлення вже там. - Проблема 3: "ConnectionError".
Ця помилка виникає, якщо є проблеми зі з'єднанням до серверів Telegram. Переконайся, що ти не за VPN або фаєрволом, який блокує доступ.
Практичне застосування
Вже зараз ти можеш використати написаний клієнт для таких задач:
- Дізнатися свій Telegram ID (наприклад, для налаштування бота).
- Перевірити авторизацію і зберегти сесію для майбутніх задач.
- Підготуватися до створення більш складних інструментів автоматизації.
# Спробуй отримати більше інформації про свій акаунт
async def main():
await client.start()
me = await client.get_me()
print(f"ID: {me.id}")
print(f"Username: {me.username}")
print(f"Твоє ім'я: {me.first_name} {me.last_name}")
print(f"Телефон: {me.phone}")
await client.disconnect()
client.loop.run_until_complete(main())
Якщо бачиш свої дані — вітаю, перший крок зроблено. У наступних лекціях навчимося працювати з каналами, чатами та створювати автоматичні сповіщення.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ