Answers:
从2018年6月23日至24日,Telegram添加了此选项,作为GDPR更改的一部分。
现在,您可以请求下载所有数据,以便获取聊天记录。
您可以向@GDPRbot发出消息以请求导出数据,或者通过应用程序设置(如果已有的话)发出消息。
注意:出于安全原因,数据导出不是立即进行的,因此,如果有人控制了您的其中一台设备,他们将无法立即下载所有数据。
tg(telegram-cli)接受Lua脚本。这是我的脚本,它可以将所需的消息数量保存到sqlite数据库中。
无法使用官方应用程序自动备份您的聊天记录,此功能尚未提供
您仍然可以手动进行;在Windows上的官方客户端上测试
- 打开聊天窗口
- 单击最后发送/接收的邮件,并保持单击
- 向上移动鼠标以选择所有消息
- 右键单击以复制消息
- 将它们保存到文本文件中,否则
我发现了可以通过电报-cli工作的漂亮的PHP库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);
}
}
您必须在此处更改两个字符串:
/ path / where / you / want / to / store / messages