如何通过文件夹名称或文件夹 ID 获取 Google 驱动文件?

How to get Google drive file by folder name or folder ID?

我正在使用 Google Apis 客户端库。

我不明白如何根据文件夹名称或文件夹 ID 获取文件列表,例如:-

驱动器文件夹结构

Main =>
    - Demo 1
        - img.png
        - img2.png
    - Demo 2
        - img_Demo 2.png
        - img2_Demo 2.png
    - Demo 3
        - img_Demo 3.png
        - img2_Demo 3.png

现在我使用以下代码获取主文件夹列表和 ID

<?php
// include your composer dependencies
require_once 'vendor/autoload.php';
#https://developers.google.com/api-client-library/php/auth/web-app

$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

$client->setAccessToken('AccessToken');

$drive = new Google_Service_Drive($client);

$files_list = $drive->files->listFiles(array())->getFiles($optParams);

echo "<pre>";
print_r($files_list);
exit;
?>

我得到了这个输出:

Array
(
    [0] => Google_Service_Drive_DriveFile Object
        (
            [id] => 1LKMiCuI3OlUYrFlQnl
            [imageMediaMetadataType:protected] => Google_Service_Drive_DriveFileImageMediaMetadata
            [imageMediaMetadataDataType:protected] => 
            [isAppAuthorized] => 
            [kind] => drive#file
            [lastModifyingUserType:protected] => Google_Service_Drive_User
            [mimeType] => application/vnd.google-apps.folder
            [name] => main
            )
        )

File.list 具有 q 参数,它允许您 search 文件。以下将 return 父 ID 为 1234567 的所有文件,这是您要查找的目录的文件 ID。

'1234567' in parents

您可以将 q 参数作为 optParams 的一部分发送

$optParams = array( 'q' => "'1234567' in parents" ); 
$files_list = $drive->files->listFiles($optParams);