Сначала вы должны получить свои "api_id" и "api_ha sh" из Telegram API . затем вы должны использовать следующий код для подключения к вашей учетной записи Telegram.
from telethon.sync import TelegramClient
from telethon.errors import SessionPasswordNeededError
# Create the client and connect
client = TelegramClient(you_username, api_id, api_hash)
client.start()
print("Client Created")
# Ensure you're authorized
if not client.is_user_authorized():
client.send_code_request(your_phone)
try:
client.sign_in(phone, input('Enter the code: '))
except SessionPasswordNeededError:
client.sign_in(password=input('Password: '))
На следующем шаге мы определяем def
для получения последнего сообщения объекта (например, канала или группы):
from telethon.tl.functions.messages import GetHistoryRequest
def get_entity_data(entity_id, limit):
entity = client.get_entity(entity_id)
today = datetime.datetime.today()
# y = today - datetime.timedelta(days=1)
posts = client(GetHistoryRequest(
peer=entity,
limit=limit,
offset_date=None,
offset_id=0,
max_id=0,
min_id=0,
add_offset=0,
hash=0))
messages = []
for message in posts.messages:
messages.append(message.message)
return messages
Этот def
получает идентификатор канала или группы и ограничивает количество сообщений, которые мы хотим получить от любых каналов и групп, и возвращает сообщения.
Затем вы должны получить все группы и каналы, использующие этот код:
from telethon.tl.functions.messages import GetDialogsRequest
result = client(GetDialogsRequest(
offset_date=None,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=100,
hash=0))
entities = result.chats
И на последнем шаге вы должны выполнить итерации по сущностям и получить последние сообщения (например, 10 в следующем коде)
for entity in entities:
title = entity.title
messages = get_entity_data(entity.id, 10)
print(title + ' :')
print(messages)
print('#######')