首页 > 解决方案 > 使用 Google Drive API 在 .NET 中获取文档的修订历史

问题描述

我正在尝试找到一种方法来获取谷歌文档的修订历史。

我有以下代码返回Revisions

var _driveService = GetDriveServiceInstance();
RevisionList revisions = _driveService.Revisions.List(fileId).Execute();

但是,我无法获得对文档所做的更改。例如,添加或删除的单词。

我找到了这个资源,他们在其中完成了相同的任务R

url <- modify_url(
  url = "https://docs.google.com/feeds/download/documents/export/Export",
  query = list(
    id = fileId,
    revision = revisionId,
    exportFormat = "txt"
  )
)

在此代码中,他们运行查询可以提供的位置revisionId和位置。fileId但是,我找不到将这些参数合并Revisions.List(fileId)到我自己的代码中的方法ASP.NET

我想知道我该怎么做。有办法吗?我在 Internet 上找不到任何资源。

标签: asp.net.netgoogle-drive-apigoogle-docsgoogle-docs-api

解决方案


您正在使用列表方法 [1],它将为您检索所有修订的列表及其每个修订的属性,这些在此处指定 [2]。如果要获取与修订 ID [3] 相关的特定修订,可以使用 get 方法。

如您所见,没有属性可以知道检查是否添加或删除了单词。但是 exportLinks 属性是一个 JSON,其中包含用于以不同文件类型(html、pdf 等)[4] 下载文件的各种链接(该修订版更改后的情况)。

在您发布的资源中,他们使用解决方法来获取链接,因为 URL 始终采用相同的格式,您只需更改 URL 上的参数(文件 ID、修订 ID 和文件类型):

 https://docs.google.com/feeds/download/documents/export/Export?id=FileID&revision=RevisionID&exportFormat=FileType

您必须获取这些 URL 以获取代码中的文件,阅读它并查看进行了哪些更改。另外,请记住,如果文件不是对所有人公开的,您将需要具有正确权限的凭据才能下载文件(通过浏览器或代码)。

[1] https://developers.google.com/resources/api-libraries/documentation/drive/v3/csharp/latest/classGoogle_1_1Apis_1_1Drive_1_1v3_1_1RevisionsResource_1_1ListRequest.html

[2] https://developers.google.com/drive/api/v3/reference/revisions

[3] https://developers.google.com/resources/api-libraries/documentation/drive/v3/csharp/latest/classGoogle_1_1Apis_1_1Drive_1_1v3_1_1RevisionsResource_1_1GetRequest.html

[4] https://developers.google.com/resources/api-libraries/documentation/drive/v3/csharp/latest/classGoogle_1_1Apis_1_1Drive_1_1v3_1_1Data_1_1Revision.html


推荐阅读