Если вы хотите автоматизировать задачи или построить полноценного 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. Вот как их получить:
- Зайдите на сайт https://my.telegram.org.
- Авторизуйтесь с помощью своего Telegram-аккаунта.
- Перейдите в раздел API Development Tools.
- Создайте приложение, указав произвольное название и платформу (можно выбрать Desktop).
- В результате вы получите 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), который можно будет использовать в дальнейшем. Это позволяет больше не вводить телефон и код при каждом запуске.
Если вы видите сообщение "Клиент успешно подключен!", значит всё настроено верно.
Общие советы и таймсейверы
- Работа с несколькими ключами: если вы планируете использовать несколько аккаунтов Telegram, храните их данные в отдельных
.envфайлах, например,.env.account1,.env.account2. - Игнорируйте файл
.envв Git: добавьте.envв.gitignore, чтобы случайно не отправить свои секретные ключи в публичный репозиторий.Пример
.gitignore:.env *.session - Обновляйте сессии: Если вы забыли заблокировать старую сессию в Telegram, используйте интерфейс Telegram (настроек конфиденциальности) для разрыва соединений.
Теперь у вас в руках готовый инструмент для работы с Telegram API. Вы можете отправлять сообщения, читать чаты, мониторить каналы и многое другое. В следующей лекции мы будем создавать Telegram-клиента и разберёмся, как взаимодействовать с API на более глубоком уровне.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ