【问题标题】:Revisions list and get missing information修订列表并获取缺失信息
【发布时间】:2017-07-06 20:33:42
【问题描述】:

使用 Google API 资源管理器以及 Google Drive API v3 的官方 C# 库,响应缺少大部分 documented fields。我特别需要访问谁进行了修订,应该可以通过 $.lastModifyingUser 访问。

我已经在我的域管理员帐户和服务帐户上尝试过此操作,所以它不应该是权限问题,至少我看不到。如果有的话,我做错了什么?

List:

{
 "kind": "drive#revisionList",
 "revisions": [
  {
   "kind": "drive#revision",
   "id": "1",
   "mimeType": "application/vnd.google-apps.spreadsheet",
   "modifiedTime": "2016-11-16T18:29:29.527Z"
  },
  {
   "kind": "drive#revision",
   "id": "14",
   "mimeType": "application/vnd.google-apps.spreadsheet",
   "modifiedTime": "2016-11-16T18:35:49.184Z"
  },
  ...

Single get:

{
 "kind": "drive#revision",
 "id": "134088",
 "mimeType": "application/vnd.google-apps.spreadsheet",
 "modifiedTime": "2017-05-24T11:48:00.788Z"
}

【问题讨论】:

  • 我发现这个老问题引用了与旧 v2 API 相同的问题,有人回答说这是一个服务器端问题,已报告,但那是 4 年前的事了。 stackoverflow.com/q/18177577/1780502

标签: google-drive-api google-apis-explorer


【解决方案1】:

您需要在请求中添加fields="*"fields="permissions(id,lastModifyingUser)",以指示云端硬盘返回完整资源。默认情况下,只返回最小的一组属性。

【讨论】:

  • 作为记录,* 有效,但逗号分隔的列表无效。
  • 我相信没有默认值,所以请求失败而不是返回最小的一组属性。
  • 对我来说,即使使用 * 它也不会返回 lastModifyingUser 信息。它与我的用户权限有关吗?在他开车时,我通常可以看到活动标签。
【解决方案2】:

我无法从修订 API 中检索“lastModifyingUser”,但我能够从 Files.get 中检索“lastModifyingUser”,例如:

    File foundFile = service.files().get(id)
            .setSupportsTeamDrives(true)
            .setFields("parents, webViewLink, properties, lastModifyingUser")
            .execute();

    System.out.println("Found file is " + foundFile);
    System.out.println("Parents " + foundFile.getParents());
    System.out.println("Owners " + foundFile.getOwners());
    System.out.println("Props " + foundFile.getProperties());
    System.out.println("Last user " + foundFile.getLastModifyingUser());

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    相关资源
    最近更新 更多