我编写了以下函数来检查 Google Drive 中是否存在文件夹。它可以正常工作,但如果该文件夹位于共享驱动器中,则无法工作。我该怎么办?
public function ExistsFolderOnDrive($access_token, $folder_name, $parent_folder_id) {
$query = "mimeType='application/vnd.google-apps.folder' and trashed=false and name='$folder_name' and '$parent_folder_id' in parents";
$apiURL = self::DRIVE_FILES_URI . "?q=" . urlencode($query);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $access_token));
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code != 200) {
$error_msg = 'Failed to retrieve folder from Google Drive';
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
}
throw new Exception('Error ' . $http_code . ': ' . $error_msg);
}
if (empty($data['files'])) {
// The folder doesn't exist
return false;
} else {
// Folder exists, return folder information
return $data['files'][0]['id'];
}
}
我尝试添加
'sharedWithMe' in parents
甚至
and ('$parent_folder_id' in parents or 'sharedWithMe' in parents)
查询但不起作用。我正在寻找一些关于如何做到这一点的建议
关于您的以下问题,
它可以正常工作,但如果该文件夹位于共享驱动器中,则它无法工作。我该怎么办?
在您的显示脚本的情况下,为了搜索共享驱动器,如何修改它如下?
$apiURL = self::DRIVE_FILES_URI . "?q=" . urlencode($query);
$apiURL = self::DRIVE_FILES_URI . "?q=" . urlencode($query) . "&corpora=allDrives&includeItemsFromAllDrives=true&supportsAllDrives=true";