【问题标题】:Google Drive PHP API Client: Creating a folder in a shared driveGoogle Drive PHP API 客户端:在共享驱动器中创建文件夹
【发布时间】:2021-02-03 19:05:50
【问题描述】:

我正在尝试在新创建的共享驱动器中创建一个文件夹,使用带有以下代码的 Google 的 PHP API 客户端(注意 API 连接和服务都正常工作):

//Create the drive
$drive = new Google_Service_Drive_Drive();
$drive->setName( "Drive Name" );

$create_drive_response = $service->drives->create( uniqid(), $drive );
$drive_id = $create_drive_response->id;     


//Create the folder
$folder = new Google_Service_Drive_DriveFile();
$folder->setName ( "Folder Name" );
$folder->setMimeType ( 'application/vnd.google-apps.folder' );
$folder->setDriveId ( $drive_id );

$optional_params = [ 'supportsAllDrives' => true];

$create_folder_response = $service->files->create( $folder, $optional_params );
$folder_id = $create_folder_response->id()

驱动器创建没有问题,文件夹创建没有问题,但无论我做什么,文件夹总是在我的驱动器的根目录中创建,而不是在新创建的驱动器中。响应中没有错误或警告。

【问题讨论】:

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


    【解决方案1】:

    文档没有在任何地方提到这一点,但是在共享驱动器中创建文件夹或文件时,您需要使用 $folder->setParents ( $drive_id ); 将“driveId”属性和“parents”属性设置为共享驱动器的 ID :

    //Create the drive
    $drive = new Google_Service_Drive_Drive();
    $drive->setName( "Drive Name" );
    
    $create_drive_response = $service->drives->create( uniqid(), $drive );
    $drive_id = $create_drive_response->id;     
    
    
    //Create the folder
    $folder = new Google_Service_Drive_DriveFile();
    $folder->setName ( "Folder Name" );
    $folder->setMimeType ( 'application/vnd.google-apps.folder' );
    $folder->setDriveId ( $drive_id );
    $folder->setParents ( $drive_id );
    
    $optional_params = [ 'supportsAllDrives' => true];
    
    $create_folder_response = $service->files->create( $folder, $optional_params );
    $folder_id = $create_folder_response->id();
    

    【讨论】:

    • 注意:自 2020 年 6 月 1 日起,“supportsAllDrives”参数已弃用,并且假定所有应用程序都支持共享驱动器。 developers.google.com/resources/api-libraries/documentation/…
    • 让它与$folder->setParents([$drive_id]); 一起工作(parents 应该是一个 id 数组)。
    • 并包括supportsAllDrives 参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多