如何使用Google API在Team Drive中创建文件夹?

丹尼·格林(Danny Green)

我正在努力使用Google API PHP客户端库在Team Drive中创建文件夹。

我正在使用服务帐户并冒充作为Team Drive成员的用户(本人),并且可以列出该驱动器的内容。但是,当我创建文件夹时,它总是在“我的驱动器”而不是指定的团队驱动器中创建。

尝试1

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope("https://www.googleapis.com/auth/drive");
$client->setSubject('[email protected]');

$service = new Google_Service_Drive($client);

$folderId = '0AIuzzEYPQu9CUk9PVA';
$fileMetadata = new Google_Service_Drive_DriveFile(array(
    'name' => 'New Test Folder',
    'mimeType' => 'application/vnd.google-apps.folder',
    'supportsAllDrives' => true,
    'parents' => ['0AIuzzEYPQu9CUk9PVA']
));

尝试2

$fileMetadata = new Google_Service_Drive_DriveFile(array(
    'name' => 'New Test Folder',
    'mimeType' => 'application/vnd.google-apps.folder',
    'supportsAllDrives' => true,
    'driveId' => '0AIuzzEYPQu9CUk9PVA'
));

更新尝试3

$fileMetadata = new Google_Service_Drive_DriveFile(array(
    'name' => 'Hello 123',
    'supportsAllDrives' => true,
    'mimeType' => 'application/vnd.google-apps.folder',
    'parents' => ['0AIuzzEYPQu9CUk9PVA']
));

$file = $service->files->create($fileMetadata, array(
      'fields' => 'id'));
    printf("Folder ID: %s\n", $file->id);

尝试3给出此错误:致命错误:未捕获的Google_Service_Exception:{“ error”:{“ errors”:[{“ domain”:“ global”,“ reason”:“ notFound”,“ message”:“未找到文件:0AIuzzEYPQu9CUk9PVA 。“,” locationType“:”参数“,” location“:” fileId“}]

我已经阅读了有关Team Drive和API的所有(有限的)文档,并了解到Team Drive中的文件夹/文件只能有一个父对象(Team Drive的ID),因此我尝试将父对象的变体作为数组和字符串。

文件夹创建正确,只是在错误的位置。

吗啡主义

关于如何处理Teamdrives中文件夹的创建的文档尚不十分清楚,但这是您需要注意的两件事:

1.'supportsAllDrives' => true,是可选参数的一部分,而不是文件元数据的一部分。2.parentdriveId都应作为元数据的一部分包含在内

因此,这里有一个有关如何实现此目的的示例:

$service = new Google_Service_Drive($client);
$parent = "0AA3C8xRqwerLglUk9PVA"; //Teamdrive ID

//Create new folder
$file = new Google_Service_Drive_DriveFile(array(
    'name' => 'Test Folder',
    'mimeType' => 'application/vnd.google-apps.folder',    
    'driveId' => $parent,
    'parents' => array($parent)
));

$optParams = array( 
    'fields' => 'id', 
    'supportsAllDrives' => true,
);

$createdFile = $service->files->create($file, $optParams);
print "Created Folder: ".$createdFile->id;

请注意:您将需要客户端库版本2.1.3或更高版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Google的Python Drive Client API在Team Drive中创建文件夹?

如何在Team Drive中创建文件夹?

使用 PHP 创建文件夹 Google Drive API

如何在Google Drive Android API中获取已创建文件夹的DriveId

403:在google drive api php中创建文件夹时权限不足

如何在Flutter应用中使用Google Drive API创建文件夹?

Google Drive API 使用 curl 调用创建文件而不是文件夹

使用Google Drive API创建文件夹:资源没有“插入”方法

在根目录下创建文件夹并将文件上传到该文件夹google drive api

如何在根目录中创建文件夹并在Android的Google Drive REST API v3中获取其ID

Google Drive API Python客户端:批量创建时如何检索已创建文件夹ID的列表?

如何使用Node.js API在DigitalOcean存储桶中创建文件夹?

Drive API - 在父文件夹中创建文件夹不起作用

使用 OneDrive API 在另一个文件夹中创建文件夹

使用API在Amazon S3存储桶中创建文件夹/上传文件

python google api权限创建文件夹

如何通过php API在Docusign SOAP中创建文件夹?

使用API在OneDrive上创建文件夹

在Android中使用Dropbox API创建文件夹

使用EWS API在其他邮箱中创建文件夹

使用Google Drive API上传文件夹中的文件

使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式

使用api rest在Google驱动器中的创建文件夹期间未定义file.id

如何在 google drive api 中复制文件夹?

Azure DevOps:如何使用REST API存储库在GIT存储库中创建文件夹

如何使用 Google Drive V3 创建文件夹?

如何使用 Google Drive API Javascript 列出特定文件夹中的更改

如果文件夹中不存在文件,则删除文件夹 - Google Drive API

通过 API 重命名 Google Drive 中的文件夹