使用Google Drive API获取.NET中文档的修订历史记录

时间:2019-05-31 17:01:40

标签: asp.net .net google-drive-api google-docs google-docs-api

我正在尝试找到一种获取Google文档修订历史记录的方法。

我有以下代码返回Revisions

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

但是,我无法在文档上进行更改。例如,添加或删除单词。

我发现this resourceR中完成了相同的任务:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

在发布的资源中,他们使用一种变通方法来获取链接,因为URL始终采用相同的格式,并且您只需要更改URL上的参数(文件ID,修订ID和文件类型):< / p>

 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