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

时间:2019-02-11 10:21:37

标签: php google-api google-drive-api google-api-php-client

我正在使用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
            )
        )

1 个答案:

答案 0 :(得分:1)

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

'1234567' in parents

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

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