回答:
GDPRの変更の一部として、2018年6月23日から24日まで、テレグラムはこのオプションを追加しました。
これで、すべてのデータのダウンロードをリクエストできるようになり、チャットログを取得できるようになりました。
@GDPRbotにメッセージを送信して、データのエクスポートを要求するか、既に利用可能な場合はアプリの設定から要求することができます。
注:セキュリティ上の理由から、データのエクスポートはすぐには行われないため、誰かがデバイスの1つを制御した場合、すべてのデータをすぐにダウンロードすることはできません。
tg(telegram-cli)はLuaスクリプトを受け入れます。これは、必要な数のメッセージをsqliteデータベースに保存するスクリプトです。
私は要旨の @Samimに基づいて独自のスクリプトを作成しました。
SQLデータベースを使用するのではなく、好きなように保存できるようにファイルに出力します。また、より多くのダイアログの履歴を取得できるように、スリープ機能があります。まだtelegram-cli
100のハード制限によって制限されています。ソースを編集して制限を上げることで、それを変更しました。
公式アプリケーションではチャットの履歴を自動でバックアップすることはできません。この機能はまだ提供されていません
それでも手動で作成できます。Windowsの公式クライアントでテスト済み
- チャットウィンドウを開く
- 最後の送信/受信メッセージをクリックし、クリックしたままにします
- マウスを上に動かして、すべてのメッセージを選択します
- 右クリックしてメッセージをコピーします
- テキストファイルなどに保存します
telegram-cli https://github.com/zyberspace/php-telegram-cli-clientで動作するかなりのphpライブラリを見つけました
すべてのメッセージとファイルをダウンロードするスクリプトがあります。
<?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);
}
}
ここで2つの文字列を変更する必要があります。
/ path / where / you / want / to / store / messages