Google api 如何在GDrive v3中列出快捷方式文件夹中的文件

Google api 如何在GDrive v3中列出快捷方式文件夹中的文件,google-api,google-drive-api,gdrive,Google Api,Google Drive Api,Gdrive,我正在尝试使用GDrive API v3列出快捷方式文件夹中的所有文件和文件夹 使用API时,我可以使用以下请求列出所有文件: curl \ 'https://www.googleapis.com/drive/v3/files?q=%27root%27%20in%20parents&supportsAllDrives=true&supportsTeamDrives=true&key=[YOUR_API_KEY]' \ --header 'Authorization

我正在尝试使用GDrive API v3列出快捷方式文件夹中的所有文件和文件夹

使用API时,我可以使用以下请求列出所有文件:

curl \
  'https://www.googleapis.com/drive/v3/files?q=%27root%27%20in%20parents&supportsAllDrives=true&supportsTeamDrives=true&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

返回类似于:

{
    "kind": "drive#file",
    "id": "xxxxxxxxxxxxxx",
    "name": "Name of file here",
    "mimeType": "application/vnd.google-apps.shortcut"
}
当我获取该id并在上面相同的请求中使用它时,它适用于
“mimeType”:“application/vnd.google apps.folder”
。我得到一个空的有效载荷:

{
 "kind": "drive#fileList",
 "incompleteSearch": false,
 "files": []
}


我是否使用了错误的端点?还有什么我需要添加到API请求中的吗?

快捷方式与它指向的目录不是同义词。您需要发出两个请求,一个请求从快捷方式获取目标ID(“targetId”),然后第二个请求在父文件夹中查找具有
targetId的文件

驱动器中的快捷方式项具有实际文件夹ID的属性。 例如,如果请求时驱动器中只有一个文件夹的快捷方式,则在根目录中列出所有文件时,将得到两个结果

  • 一个mime类型为“快捷方式”-即快捷方式
  • 一个mime类型为“folder”的API似乎无论如何都会列出这一点
  • 如果出于任何原因您只获得快捷方式,您可以获得快捷方式的详细信息:

    要求 回应 (我已从响应中删除了大部分字段)

    {
    “种类”:“驱动器#文件”,
    “id”:“[您的快捷方式id]”,
    “名称”:“[您的快捷方式名称]”,
    “mimeType”:“application/vnd.google apps.shortcut”,
    “星号”:假,
    “垃圾”:假的,
    “shortcutDetails”:{
    “targetId:“[实际文件夹ID]”,
    “targetMimeType”:“application/vnd.google apps.folder”
    }
    }
    
    shortcutDetails
    中包含
    targetId

    之后,您可以在parents中使用适当的
    “ID”编写原始请求

    参考文献

    文件夹的mimetype是application/vnd.google-apps.folderI以为我试过了,但没用。我又试了一次,砰的一声就好了。有没有一种方法可以将
    shortcutDetails
    与整个有效负载进行比较,因为它很大<代码>字段=*
    有没有办法带回几个字段?我需要与排除此参数时得到的字段相同的字段,再加上
    shortcutDetails
    。这有可能吗?是的,有可能,请看。
    curl \
      'https://www.googleapis.com/drive/v3/files/[YOUR_SHORTCUT_ID]?fields=*&key=[YOUR_API_KEY]' \
      --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
      --header 'Accept: application/json' \
      --compressed