【问题标题】:Get list of revision ids ONLY仅获取修订 ID 列表
【发布时间】:2021-03-27 13:43:50
【问题描述】:

我正在尝试获取包含大量修订的谷歌工作表的所有修订 ID 的列表,但是当我执行 GET https://www.googleapis.com/drive/v2/files/[fileID]/revisions 时,它给了我很多我不需要的额外信息,并且只返回 200 个修订号。

我已经多次使用 nextPageToken 重复调用,这确实提取了更多修订信息,但与前一个有很多重叠,所以也许我做错了。

这是我使用 OAuth2.0 Playground 所做的确切 HTTP 帖子。 https://www.googleapis.com/drive/v2/files/[fileID]/revisions?maxresults=1000&nextPageToken="[token]"

我尝试了多种方法来使用字段参数(revisionId、revisionsId、id 等)来隔离修订 ID,但它无法识别其中任何一个,即使在我得到所有其他信息的结果中也是如此,它被标记为“id”。

我看到了这篇关于仅获取修订 ID 的文章,但无法复制结果 - https://www.rsaeks.com/?p=164

有没有办法在我的结果中仅隔离修订 ID 号并浏览页面而不重叠?

我的最终目标是能够下载每个修订版本的副本,而无需浏览版本历史中的每个版本并制作副本。如果我可以将其进一步缩小到特定用户编辑的版本,那就更好了。我包含此信息,以防有另一种方法可以获取我最终要寻找的东西,而我没有看到或不知道。

【问题讨论】:

    标签: google-sheets google-sheets-api revision-history


    【解决方案1】:

    关于您对仅隔离修订 ID 的担忧,

    您目前正在使用Revisions: list in Drive API Version 2

    版本 2 中可用的可选查询参数有:

    ma​​xResults - 要返回的最大修订数。可接受的值为 1 到 1000,包括 1 到 1000。 (默认:200)

    pageToken - 用于修订的页面标记。要获取下一页结果,请将此参数设置为上一个响应中“nextPageToken”的值。


    如果要过滤特定字段以包含在响应中,可以使用Revisions: list in Drive API Version 3

    此版本包含以下可选查询参数:

    fields - 您希望包含在响应中的字段的路径。如果未指定,则响应包含一组特定于此方法的默认字段。对于开发,您可以使用特殊值 * 来返回所有字段,但您将 通过仅选择您需要的字段来获得更高的性能。有关详细信息,请参阅返回文件的特定字段。

    pageSize - 每页返回的最大修订数。可接受的值为 1 到 1000,包括 1 到 1000。 (默认:200)

    pageToken - 用于在下一页继续上一个列表请求的令牌。这应该设置为上一个响应中的“nextPageToken”的值。


    示例:

    HTTP 请求:

    GET https://www.googleapis.com/drive/v3/files/<FileId>/revisions?pageSize=1000&fields=revisions%2Fid&key=<Key>
    

    示例响应:

     "revisions": [
      {
       "id": "1831"
      },
      {
       "id": "1835"
      },
      {
       "id": "1855"
      },
      {
       "id": "1856"
      },
      {
       "id": "1870"
      },
      {
       "id": "1892"
      },
      {
       "id": "1898"
      }
     ]
    }
    

    注意: 我无法重现您对显示的每页最大结果以及页面之间重叠的担忧,因为我没有包含此类修订的示例文档。但根据提供的文档,pageSize 应设置每页返回的最大修订数,其中可以设置的最大可能值为 1000 个结果。

    如果您仍然需要使用 pageToken 参数,您可能需要在响应中包含其他字段(例如 nextPageToken)。 您可以包含多个以逗号分隔的字段。

    示例字段参数: kind、revisions/id

    HTTP 请求:

    GET https://www.googleapis.com/drive/v3/files/<FileId>/revisions?pageSize=1000&fields=kind%2C%20revisions%2Fid&key=<Key>
    

    示例响应:

    {
     "kind": "drive#revisionList",
     "revisions": [
      {
       "id": "1831"
      },
      {
       "id": "1898"
      }
     ]
    }
    

    【讨论】:

    • 这很有帮助 - 认为这很简单,就像在错误的版本上一样。还有一个问题,如果您愿意的话 - 是否可以仅针对特定用户进行修改的版本获取修订 ID 列表?
    • 这是不可能的。 Revisions.list() 为您提供特定文件的完整修订列表,您只能过滤您希望接收的信息作为响应正文的一部分。您可以使用的一种解决方法是在响应正文中显示除修订 ID 之外的相关字段,以便您可以检查每个修订的最后修改用户
    • 您可以将其用作字段参数以显示有关修改修订的用户的重要详细信息:nextPageToken, revisions/id, revisions/modifiedTime, revisions/lastModifyingUser/displayName, revisions/lastModifyingUser/emailAddress
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多