Как скачать все сообщения telegram с помощью Telegram API
Для моего приложения необходимо скачать все текстовые сообщения с Telegram в формате json как это можно сделать в обычном desktop. Желательно ответ на python.
Ответы (2 шт):
Удобный экспорт доступен только в официальных приложениях Telegram для десктопов.
Однако вы можете воспользоваться библиотекой Pyrogram и написать программу, где с использованием iter_dialogs() и iter_history() перебрать все диалоги, сохраняя их. Примеры использования приводятся там же. Проблем возникнуть не должно.
Как альтернативу Pyrogram можно использовать оффициальную(как я понял) библиотеку для python telethon. Я бы сказал, что она более настраиваемая, чем pyrogram, и для нее удобнее сделать свой интерфейс взаимодействия (в моем случае PyQt5). Хотя есть и один минус – telethon почти полностью ассинхронен. Вот код:
async def get_messages(self):
chats = []
i = 0
async for dialog in self.client.iter_dialogs():
chats.append({'name': dialog.name,
'id': dialog.message.from_id,
'messages': []})
async for message in self.client.iter_messages(dialog.name):
chats[i]['messages'].append({'text': message.message,
'id': message.from_id,
'date': message.date})
i += 1
return chats