раздел 02
Установка и первый вход
Чтобы начать, нужно три вещи: установить библиотеку, получить ключи приложения (api_id и api_hash) и один раз войти под своим номером. После этого вход сохранится в файл .session и повторно вводить код не придётся.
Шаги
Установка
pip install telethon
Если планируете подключаться через прокси (актуально для запуска из России - см. раздел про риски), поставьте сразу и поддержку socks:
pip install telethon "python-socks[asyncio]"
Где взять api_id и api_hash
api_id и api_hash - это ключи вашего приложения. Telegram выдаёт их на my.telegram.org:
- Откройте
my.telegram.orgи войдите под своим номером (придёт код в Telegram). - Зайдите в раздел
API development tools. - Заполните название и короткое имя приложения (можно любое, для себя).
- Скопируйте
api_id(число) иapi_hash(длинная строка).
Эти ключи привязаны к вашему аккаунту и нужны при каждом входе. Их, как и файл сессии, держат в секрете.
Минимальный скрипт первого входа
from telethon import TelegramClient
api_id = 0 # ваш api_id с my.telegram.org (число)
api_hash = "YOUR_API_HASH" # ваш api_hash (строка)
phone = "+10000000000" # ваш номер в международном формате
client = TelegramClient("my_session", api_id, api_hash)
async def main():
await client.start(phone=phone) # спросит код из Telegram, при 2FA - пароль
me = await client.get_me()
print("Вошли как:", me.first_name, "id:", me.id)
with client:
client.loop.run_until_complete(main())
Первый аргумент TelegramClient("my_session", ...) - имя сессии. Telethon сохранит вход в файл my_session.session в текущей папке. Метод client.start() сам проведёт всю авторизацию: спросит код, а при включённой 2FA - пароль.
Куда прятать ключи
Не вписывайте api_id, api_hash и номер прямо в код, который потом попадёт в git. Держите их в переменных окружения или в .env:
import os
from telethon import TelegramClient
api_id = int(os.environ["TG_API_ID"])
api_hash = os.environ["TG_API_HASH"]
client = TelegramClient("my_session", api_id, api_hash)