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



我正在尝试使用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的属性

例如,当您提出请求时,如果您的驱动器中只有一个文件夹的快捷方式,则在根目录中列出所有文件时,您将得到两个结果

  1. 一个具有mime类型的"快捷方式"-这是捷径
  2. 一个具有mime类型";文件夹"-API似乎无论如何都列出了这一点

如果出于任何原因您只获得快捷方式,您可以获得快捷方式的详细信息:

请求

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

响应

(我已经从响应中删除了大部分字段(

{
"kind": "drive#file",
"id": "[YOUR_SHORTCUT_ID]",
"name": "[YOUR_SHORTCUT_NAME]",
"mimeType": "application/vnd.google-apps.shortcut",
"starred": false,
"trashed": false,
"shortcutDetails": {
"targetId": "[THE_ACTUAL_FOLDER_ID]",
"targetMimeType": "application/vnd.google-apps.folder"
}
}

在CCD_ 2中是CCD_。

之后,您可以使用正确的"ID" in parents编写您的原始请求。

参考

  • 使用驱动器API创建快捷方式

快捷方式与其指向的目录并不同义。您需要发出两个请求,一个是从快捷方式中获取目标ID("targetId"(,然后第二个调用以查找具有targetId in parents的文件。

相关内容

  • 没有找到相关文章

最新更新