如何验证Google共享云端硬盘中是否存在文件夹

问题描述 投票:0回答:1

我编写了以下函数来检查 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)

查询但不起作用。我正在寻找一些关于如何做到这一点的建议

php google-drive-api php-curl
1个回答
0
投票

关于您的以下问题,

它可以正常工作,但如果该文件夹位于共享驱动器中,则它无法工作。我该怎么办?

在您的显示脚本的情况下,为了搜索共享驱动器,如何修改它如下?

来自:

$apiURL = self::DRIVE_FILES_URI . "?q=" . urlencode($query);

致:

$apiURL = self::DRIVE_FILES_URI . "?q=" . urlencode($query) . "&corpora=allDrives&includeItemsFromAllDrives=true&supportsAllDrives=true";

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.