谷歌驱动器api添加共享文件夹到我的文件


Google drive api add shared folder to my files

我正在创建一个PHP脚本,将在谷歌驱动器帐户内创建文件夹。一旦文件夹创建后,我将使用权限与我的谷歌应用程序域的其他用户共享它。

我已经成功地创建了这个部分,现在我需要添加一个可以通过UI完成的函数,但我找不到通过api来完成的方法:我想将文件夹添加到用户的my files部分(可能在子文件夹中)通过UI可以完成到"与我共享的文件"部分,右键单击并选择"添加到我的文件"

我如何用编程方式做到这一点?有办法吗?

编辑

我想在用户目录

中以编程方式完成此操作https://i.stack.imgur.com/II3Q6.png

目前,我可以在用户目录中创建文件和文件夹,只是我不知道如何添加从其他用户共享的文件夹

我找到了问题的答案。我离开这里了,所以如果有人需要它;)

要在用户B "my files"中添加用户a的共享文件夹,您需要以用户B的身份访问驱动器api,获取共享文件夹(它与用户a实例中的共享文件夹具有相同的id),并将该文件夹的根目录或用户B驱动器中的文件夹添加为父目录。

$about = $userBServiceInstance->about->get();
$userBRootFolderId = $about->getRootFolderId();
$newParent = new Google_Service_Drive_ParentReference();
$newParent->setId($userBRootFolderId);
$userBServiceInstance->parents->insert($folderId, $newParent);

我不知道我是否正确理解了你的问题,但是为了以编程方式在Google Drive的根目录中创建一个文件夹,您可能要使用以下代码。在Google Drive中,文件夹是一种特殊的文件类型(即application/vnd.google-apps.folder),有关更多信息,请参阅他们的API文档。

$client = new Google_Client();
// set various parameters, including name, key and secret
$service = new Google_Service_Drive($client);
$about = $service->about->get();
$rootID = $about->getRootFolderId();
createFolderIfNotExists($service, $rootID, "stackfolder");
// creates a folder in the given rootID or returns the ID if it already exists
function createFolderIfNotExists($service, $rootID, $foldername) {
    $search = "title='{$foldername}' AND '{$rootID}' in parents AND mimeType = 'application/vnd.google-apps.folder' AND trashed != true";
    $parameters = array("q" => $search);
    $files = $service->files->listFiles($parameters);
    if (!empty($files["items"])) {
        $folderID = $files["items"][0]->getId(); // the first element
    } else {
        // create a folder under root
        $file = new Google_Service_Drive_DriveFile();
        $file->setTitle($foldername);
        // To create new folder, we need to set the mime type
        $file->setMimeType('application/vnd.google-apps.folder');
        // set parent folder
        $parent = new Google_Service_Drive_ParentReference();
        $parent->setId($rootID);
        $file->setParents(array($parent));
        $folder = $service->files->insert($file);
        $folderID = $folder->getId();
    }
    return $folderID;
}

addParents添加到文件/文件夹中,使用API V3 drive.files.update

PATCH https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=PARENT_ID&key={YOUR_API_KEY}
相关文章: