Google API 获取 Doc 的详细修订历史记录

Max*_*888 6 google-api google-docs google-docs-api rust google-drive-api

我可以使用下面的内容(使用 google-drive3 Rust 箱)获得 Google 文档的修订列表,它为我提供了 Google Drive 中选定文件的“活动”选项卡中的信息。然而,我想要从打开的 Google 文档中访问的详细版本历史记录,其中包含文件 -> 版本历史记录 -> 查看版本历史记录。除了 Google Drive 中显示的信息之外,这还显示了修订版与文档的哪些部分相关。是否可以从 Google Drive API 或 Google Docs API 访问此更详细版本历史记录的数据?

let hub = google_drive3::DriveHub::new(
    google_docs1::hyper::Client::builder().build(
        google_docs1::hyper_rustls::HttpsConnectorBuilder::new()
            .with_native_roots()
            .https_or_http()
            .enable_http1()
            .enable_http2()
            .build(),
    ),
    auth,
);
let activity = hub
    .revisions()
    .list("<document id>")
    .doit()
    .await;
for rev in activity.unwrap().1.revisions.unwrap() {
    dbg!(rev);
}
Run Code Online (Sandbox Code Playgroud)

Neb*_*tic 1

您必须指定要返回哪些字段(或全部)。如果您不指定此项,则仅将默认的字段子集返回给调用者。Google 包含了“尝试一下!” 在他们的文档中,您可以轻松地测试您正在进行的 API 调用。这就是 Rust 的样子:

let activity = hub
    .revisions()
    .list("<document id>")
    .params({"fields":"*"})
    .doit()
    .await;
Run Code Online (Sandbox Code Playgroud)

此外,您还会看到随机 Google 云端硬盘文件的版本历史记录的屏幕截图。让我们看看如何通过 google-drive3 rust crate 以编程方式获取与屏幕截图中相同的数据。

在此输入图像描述

正如您在屏幕截图中看到的,我们需要获取以下数据:

  1. 修订日期时间:这是修订结构modified_time中的字段
  2. 修订作者:这是last_modifying_user修订结构中的字段。
  3. 当前版本:检索所有修订版本并按modified_time降序排序,以便第一个修订版本是当前版本。
  4. 修订之间的文档更改id:从字段(我们已有的文档 ID)获取两个修订的 id 。现在使用RevisionGetCall获取两个修订内容。并在这些文件之间执行差异。