Сохранить журнал чата Telegram
Я не могу сохранить журнал чата с Telegram. Насколько мне известно, Telegram на Android, Mac OS X, Windows и Linux не предоставляет эту возможность пользователю. Это основная функция, и это разочаровывает и удивляет, что это программное обеспечение не имеет.
Есть запрос на эту функцию здесь.
Может быть, есть обходной путь, потому что вся история загружается на устройство при обратной прокрутке.
Можно ли захватить / сохранить историю чата, загруженную в устройство, сделать локальную резервную копию журнала чата?
6 ответов
Официальный экспорт данных
С 23 по 24 июня 2018 года Telegram добавил эту опцию, как часть изменений GDPR.
Теперь вы можете запросить загрузку всех ваших данных, и вы можете получить свои журналы чата.
- Поддержка Telegram для экспорта данных:
- Telegram Desktop - от 1.3.8 или выше
- Telegram для Android - от 4.8.10 или выше
- Telegram для iOS - от 4.8.3 или выше
- Telegram Webapp - пока недоступно
- Telegram для Windows Phone - не знаю
Вы можете отправить сообщение @GDPRbot для запроса экспорта данных или из настроек приложения, если они уже доступны.
Примечание. По соображениям безопасности экспорт данных не является немедленным, поэтому в случае, если кто-то получит контроль над одним из ваших устройств, он не сможет сразу же загрузить все ваши данные.
Прочитайте полное уведомление от экспорта FAQ Telegram
Демонстрация с Telegram Desktop
Другие варианты (от GitHub)
tg (telegram-cli) принимает скрипты Lua. Вот мой скрипт, который сохраняет столько сообщений, сколько вы хотите, в базу данных sqlite.
Я создал свой собственный сценарий на основе @Samim's в сущности.
Он печатает в файл, так что вы можете сохранить его, как вам нравится, а не использовать базу данных SQL. Кроме того, он имеет функцию сна, чтобы вы могли большее количество историй диалогов. Это все еще ограничено telegram-cli
Это жесткий предел в 100. Я изменил это, отредактировав источник и подняв предел.
Ответ:
Невозможно сделать резервную копию истории чата в автоматическом режиме с помощью официального приложения, эта функция пока не предоставляется
Обходной путь:
Вы все еще можете сделать это вручную; проверено на официальном клиенте на windows
- Открыть окно чата
- Нажмите на последнее отправленное / полученное сообщение и продолжайте нажимать
- Переместите мышь вверх, чтобы выбрать все сообщения
- Щелкните правой кнопкой мыши, чтобы скопировать сообщения
- Сохраните их в текстовый файл или еще
Я нашел симпатичную библиотеку php, которая работает над telegram-cli https://github.com/zyberspace/php-telegram-cli-client
Есть скрипт, который будет скачивать все сообщения и файлы.
<?php
require('vendor/autoload.php');
$telegram = new \Zyberspace\Telegram\Cli\Client('unix:///tmp/tg.sck');
$chat = 'chat_name_that_you_want_to_download';
$limit = 50;
$offset = 0;
function save($msg)
{
$path = '/path/where/you/want/to/store/messages';
file_put_contents($path . '/' . $msg->id, json_encode($msg));
}
function download($telegram, $msg)
{
$response = $telegram->exec('load_' . $msg->media->type, $msg->id);
$msg->media->path = $response->result;
}
while($msgList = $telegram->getHistory($chat, $limit, $offset)) {
$offset += $limit;
foreach($msgList as $msg) {
if (isset($msg->media)) {
download($telegram, $msg, $msg->media->type);
}
save($msg);
}
}
Вы должны изменить две строки здесь:
- chat_name_that_you_want_to_download
/ путь / где / вы / хотите / в / магазин / сообщения
- Скрипт сохраняет каждое сообщение (из чата "chat_name_that_you_want_to_download") в виде отдельного файла в папке "/path/where/you/want/to/store/messages".
- Каждый файл содержит json представление сообщения.
- Для файлов будет "media->path" с путем к загруженному файлу.
- Файлы будут храниться в папке telegram-cli по умолчанию: ~/telegram-cli/downloads
Простой способ, если вы хотите экспортировать его в текст или HTML (если вы хотите, чтобы ваши сообщения были цветными).
Вы можете
- войдите с
telegram-cli
- открыть историю чата
- экспортировать содержимое вашего терминала
В моем случае я использую Konsole, поэтому я делаю File
> Save output as
Я предпочитаю это в HTML.