如何获取从指定时间点(比如说从最后一天开始)的所有驱动器更改的历史记录?
Reports API - Drive Activity Reports似乎是最好的,但这些仅适用于 Google Apps Unlimited accounts 。
我知道,也可以用 push notifications 来完成,但我正在寻找其他方法,因此我可以选择最好的方法。
我已经尝试过Drive.Changes.List但它只为每个文件返回一个 Change
实例,因此,如果我在时间 t1 和时间 t2 编辑文件,然后列出所有更改,它将仅返回 文件的最后更改
(t2)。
我已经阅读了一些关于可以列出的修订
的内容,因此理论上,我将能够获得所有更改(如果我错了,请纠正我)。
还有别的办法吗?
最佳答案
出于不同的目的,更改和修订是不同的事情。
要回答“如何获取从指定时间点(比如说从最后一天开始)的所有驱动器更改的历史记录?”,您可能需要两者的组合。
不知道您的用例,我的方法是获取带有 q='modifiedDate > iso' 的所有文件 (file.list) 的列表。这或多或少相当于该时间点的更改 ID 之后的更改列表。
然后,对于每个文件,您可以执行 revisions.list 来获取所有修订版本。如果您想导出更改(即两个修订版之间的差异),您需要自己执行此操作。
同样,根据您要查找的信息,事件 API https://developers.google.com/google-apps/activity/v1/reference/activities/list可能就是您正在寻找的。因此,您可以为第 1 步中的每个 fileID 调用该方法。
注意。在第 1 步中,使用“fields”将输出修剪为 nextPageToken、items/id 和 items/modifiedDate,否则您将淹没在数据中。
作为步骤 1 的替代方案,您可以使用某种 cron 作业,每小时执行一次 about.get 来获取当前 ChangeID、添加时间戳并将其存储在某处。然后,第 1 步变为,获取相关时间戳的适当的changeId,然后列出更改 > 该changeID。
关于google-drive-api - Google 云端硬盘更改历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596050/