subir google examples con archivos apiclient php google-drive-sdk google-api-php-client

examples - Crea una subcarpeta usando google-drive-api y devuelve la identificación con PHP



google/apiclient (3)

Tal vez no es una manera elegante, pero este es mi método para obtener ID de carpeta:

$service = new Google_DriveService($client); $files = $service->files->listFiles(); foreach ($files[''items''] as $item) { if ($item[''title''] == ''your_folder_name'') { $folderId = $item[''id'']; break; } }

Puedo crear la subcarpeta muy bien con el código a continuación, pero simplemente no puedo devolver la identificación.

Me gustaría obtener la identificación y / o el enlace a la carpeta para poder agregarlos a mi base de datos.

¡Actualmente, lo que sigue crea la carpeta, pero simplemente devuelve "//" como identificación!

Gracias por tu ayuda

<?php if ($client->getAccessToken()) { $file = new Google_DriveFile(); //Setup the Folder to Create $file->setTitle(''Project Folder''); $file->setDescription(''A Project Folder''); $file->setMimeType(''application/vnd.google-apps.folder''); //Set the ProjectsFolder Parent $parent = new Google_ParentReference(); $parent->setId(''0B9mYBlahBlahBlah''); $file->setParents(array($parent)); //create the ProjectFolder in the Parent $createdFile = $service->files->insert($file, array( ''mimeType'' => ''application/vnd.google-apps.folder'', )); // print_r($createdFile); print "folder created sucessfully"; echo "folder id is" . $createdFile->id; } ?>


Creo que los métodos se han actualizado, así que he usado nuevos métodos. Aquí está la biblioteca

if ($client->getAccessToken()) { $file = new Google_Service_Drive_DriveFile(); $file->title = "New File By Bikash 111"; // To create new folder $file->setMimeType(''application/vnd.google-apps.folder''); // To set parent folder $parent = new Google_Service_Drive_ParentReference(); $parent->setId(''0B5kdKIFfgdfggyTHpEQlpmcExXRW8''); $file->setParents(array($parent)); $chunkSizeBytes = 1 * 1024 * 1024; // Call the API with the media upload, defer so it doesn''t immediately return. $client->setDefer(true); $request = $service->files->insert($file); // Create a media file upload to represent our upload process. $media = new Google_Http_MediaFileUpload( $client, $request, ''text/plain'', null, true, $chunkSizeBytes ); $media->setFileSize(filesize(TESTFILE)); // Upload the various chunks. $status will be false until the process is // complete. $status = false; $handle = fopen(TESTFILE, "rb"); while (!$status && !feof($handle)) { $chunk = fread($handle, $chunkSizeBytes); $status = $media->nextChunk($chunk); } //Here you will get the new created folder''s id echo "<pre>"; var_dump($status->id); exit; }


$files = $service->files->listFiles(array(''maxResults'' => 1)); var_dump($files[''items''][0][''id'']);