раздел 03
Базовые операции
Когда сессия создана, дальше всё крутится вокруг объекта client. Все примеры асинхронные: вызовы идут через await, а сам код запускается внутри client.
Подключиться
from telethon import TelegramClient
client = TelegramClient("my_session", api_id, api_hash)
async def main():
# ... тут наши операции
pass
with client:
client.loop.run_until_complete(main())
Прочитать сообщения из чата или канала
Берём последние сообщения. Адресат - username, ссылка или id чата.
async def read_chat():
async for message in client.iter_messages("@some_channel", limit=20):
print(message.date, message.text)
Отправить сообщение
async def send():
await client.send_message("@username", "Привет из Telethon")
Скачать медиа
async def download_media():
async for message in client.iter_messages("@some_channel", limit=50):
if message.media:
path = await message.download_media("downloads/")
print("Сохранено:", path)
Слушать новые сообщения
Обработчик событий реагирует на каждое новое сообщение в реальном времени.
from telethon import events
@client.on(events.NewMessage(chats="@some_channel"))
async def handler(event):
print("Новое:", event.message.text)
with client:
client.run_until_disconnected()