22

Я не могу сохранить журнал чата с Telegram. Насколько мне известно, Telegram на Android, Mac OS X, Windows и Linux не предоставляет эту возможность пользователю. Это основная функция, и это разочаровывает и удивляет, что это программное обеспечение не имеет.

Есть запрос на эту функцию здесь.

Может быть, есть обходной путь, потому что вся история загружается на устройство при обратной прокрутке.

Можно ли захватить / сохранить историю чата, загруженную в устройство, сделать локальную резервную копию журнала чата?

6 ответов6

6

tg (telegram-cli) принимает скрипты Lua. Вот мой скрипт, который сохраняет столько сообщений, сколько вы хотите, в базу данных sqlite.

https://github.com/psamim/telegram-cli-backup

5

Я создал свой собственный сценарий на основе @ Samim's в сущности.

Он печатает в файл, так что вы можете сохранить его, как вам нравится, а не использовать базу данных SQL. Кроме того, он имеет функцию сна, так что вы можете большее количество историй диалогов. Это все еще ограничено жестким пределом telegram-cli 100. Я изменил это, отредактировав источник и подняв лимит.

3

Ответ :

Невозможно сделать резервную копию истории чата в автоматическом режиме с помощью официального приложения, эта функция пока не предоставляется

Обходной путь:

Вы все еще можете сделать это вручную; проверено на официальном клиенте на windows

  • Открыть окно чата
  • Нажмите на последнее отправленное / полученное сообщение и продолжайте нажимать
  • Переместите мышь вверх, чтобы выбрать все сообщения
  • Щелкните правой кнопкой мыши, чтобы скопировать сообщения
  • Сохраните их в текстовый файл или еще
2

Я нашел симпатичную библиотеку 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);
        }
}

Вы должны изменить две строки здесь:

  1. chat_name_that_you_want_to_download
  2. / путь / где / вы / хотите / в / магазин / сообщения

    • Скрипт сохранит каждое сообщение (из чата "chat_name_that_you_want_to_download") как отдельный файл в папке "/ path / where / you / want / to / store / messages".
    • Каждый файл содержит json представление сообщения.
    • Для файлов будет «media-> path» с путем к загруженному файлу.
    • Файлы будут храниться в папке telegram-cli по умолчанию:~ / telegram-cli / downloads
2

Официальный экспорт данных

С 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 для запроса экспорта данных или из настроек приложения, если они уже доступны.

Примечание. По соображениям безопасности экспорт данных не является немедленным, поэтому в случае, если кто-то получит контроль над одним из ваших устройств, он не сможет сразу же загрузить все ваши данные.

Прочитайте полное уведомление об экспорте часто задаваемых вопросов Telegram

Демонстрация с Telegram Desktop

Другие варианты (от GitHub)

0

Простой способ, если вы хотите экспортировать его в текст или HTML (если вы хотите, чтобы ваши сообщения были цветными).

Вы можете

  • войти с помощью telegram-cli
  • открыть историю чата
  • экспортировать содержимое вашего терминала

В моем случае я использую Konsole, поэтому я делаю File > Save output as , я предпочитаю его в HTML.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .