раздел 05

Шпаргалка

Сниппеты

Подключение:

from telethon import TelegramClient
client = TelegramClient("my_session", api_id, api_hash)

Прочитать последние сообщения:

async for message in client.iter_messages("@channel", limit=20):
    print(message.text)

Отправить:

await client.send_message("@username", "текст")

Скачать медиа:

async for message in client.iter_messages("@channel", limit=50):
    if message.media:
        await message.download_media("downloads/")

Чек-лист безопасного использования

  • *.session в .gitignore, файл сессии не коммитить и не пересылать.
  • api_id и api_hash держать в секрете (например, в переменных окружения).
  • Делать паузы между действиями, не слать сообщения пачками.
  • Не писать незнакомым людям массово - это спам и повод для бана.
  • Одна сессия - одно место запуска, не дублировать.
  • Из России на заблокированном хостинге - подключение через прокси.
  • Скрейпинг чужих данных - оценивать риски и правила заранее.

Глоссарий

ТерминЧто это
MTProtoРодной протокол Telegram, на нём работает Telethon.
api_id / api_hashКлючи приложения с my.telegram.org, нужны для входа.
Сессия (.session)Файл с сохранённым входом в аккаунт. Секрет.
User accountОбычный пользовательский аккаунт (а не бот).
Событие (event)Новое сообщение или действие, на которое реагирует обработчик.

Куда дальше