【问题标题】:Google Drive API: No Parents with drive.files.getGoogle Drive API:没有使用 drive.files.get 的父母
【发布时间】:2017-11-04 01:28:39
【问题描述】:

我正在使用 Google Drive API。我可以使用 drive.files.list API 方法获取文件列表。这是调用此方法的结果:

{
 "files": [
  {
   "id": "1yLJFT2bHhsz1WxJX29mD9DiNz0vLDlBvzJf5GJCcboI",
   "mimeType": "application/vnd.google-apps.spreadsheet",
   "parents": [
    "0Bwy7SlKkxnwQRld6RWljU0Y4TG8"
   ]
  },
  {
   "id": "0Bwy7SlKkxnwQVXdBRmlPMGNoTmM",
   "mimeType": "application/vnd.google-apps.folder",
   "parents": [
    "0B4jAnSzS-VxlZW9RcDJheU5FYW8"
   ]
  },
  {
   "id": "0Bwy7SlKkxnwQRld6RWljU0Y4TG8",
   "mimeType": "application/vnd.google-apps.folder",
   "parents": [
    "0Bwy7SlKkxnwQQndiQnYxbUF4SjQ"
   ]
  }]
}

当我使用 drive.files.get API 调用请求单个文件时,我希望得到与上面列表中所示相同的结果。当我请求列出的第一个和第三个文件时,我会这样做。例如:

获取https://www.googleapis.com/drive/v3/files/0Bwy7SlKkxnwQRld6RWljU0Y4TG8?supportsTeamDrives=true&fields=id%2CmimeType%2Cparents

结果:

{
 "id": "0Bwy7SlKkxnwQRld6RWljU0Y4TG8",
 "mimeType": "application/vnd.google-apps.folder",
 "parents": [
  "0Bwy7SlKkxnwQQndiQnYxbUF4SjQ"
 ]
}

这与列表中显示的内容相同。但是由于某种原因,当我请求列表中的第二个文件时,结果中缺少父列表:

获取https://www.googleapis.com/drive/v3/files/0Bwy7SlKkxnwQVXdBRmlPMGNoTmM?supportsTeamDrives=true&fields=id%2CmimeType%2Cparents

结果:

{
 "id": "0Bwy7SlKkxnwQVXdBRmlPMGNoTmM",
 "mimeType": "application/vnd.google-apps.folder"
}

没有父数组。谁能解释这种行为?我假设所有文件都应该有一个父文件。

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    如果您还没有完成,您可能需要检查您是否有权访问第二个文件的父级。如Enabling Team Drives中所述:

    如果请求用户不是团队云端硬盘的成员并且无权访问父级,则父级不会出现在父级列表中。

    Behavioral differences 中,与权限和所有权相关的字段的填充方式不同。

    【讨论】:

    • 我可能不是 Team Drive 的成员,因为我使用服务帐户通过 API 访问,但我仍然不明白为什么有些文件有父文件而其他文件没有。为什么我拿到名单时总能见到父母?如果我在请求单个文件时看不到父级,为什么在请求文件列表时会看到父级?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多