@
kkocdko #14 这个说到点子上了,现在大多数主流 IM 是不认同用户对自己数据的所有权的,也不会重视用户对数据的备份、检索、管理等功能。
另一个因素是移动设备和笔记本取代桌面 PC 成为主流,实现以上功能有一定技术上的限制。
十年前 Windows 版的 QQ 是可以把聊天记录导出为 mht 文件的(现在还能不能不知道,很久不用 Windows QQ 了),可以直接处理和检索。
现在哪怕 Telegram 云端保存了记录,但是至少官方客户端是不提供导出到本地的功能的(其实桌面客户端有,但量一大导出时间就很长,基本不能用)。IM 官方云端储存不是合适的解决方案,云端的数据不是你的,因为你不能直接访问它的数据库写条件查询,做正则匹配,只能在手机上不断擦玻璃加载,然后用眼强行模式识别。
但是只要移动设备还是主流,普及较复杂的聊天记录管理功能的条件就不成熟——因为移动设备和笔记本通常只有一个持久存储器,并且一般是 NAND Flash ,单价较贵。而聊天记录的特性决定了它的体积必然是随时间单调递增的,本地只能存储一部分。并且由于缺乏冗余和备份,安全性是不如云端的。大多数只使用移动设备和笔记本的人根本就没有可以导出聊天记录的地方(还有一堆上了 NAS 的仍然在把 RAID 当备份手段),于是就只能“每半年清空一次应用数据”。但凡有个像样的 4TB 以上的 HDD ,以正常人聊天记录的规模根本就不是问题。
对于有硬件条件的人,理论上可以通过 IM 的 API 手动获取并备份,不过目前这个也存在若干问题,这一行为要求你能以一个正常用户,也就是你日常使用的账户的身份使用 API ,不是 Bot ,Bot 帐号无法获取到你个人帐号的数据,所以你的备份程序事实上成为了一个“Bot 控制的使用人类帐号的第三方客户端”,在目前的环境下这是个非常异端的事情。首先一些 IM 没有 API ,你私自用是违反 ToS ,然后一些 IM 虽然有 API 但不鼓励第三方客户端,有些 IM 要求 Bot 必须使用专用的 Bot 帐号和 Bot API 。最后这一行为获取到的聊天记录不具备法律效力,因为很容易伪造(或许你可以把和服务器的握手包啥的都记录下来 ...)。
(最后还有个让人抓狂的事情,有些软件有登录限制,比如 QQ 同一个帐号移动端只能登录一个设备,桌面端只能登录一个设备,就是说如果你用 Android API 做这个事情的话,那你的 QQ App 就没法用了 ...(小而美好像也有,不过我不怎么用))