google for fields example developers create php google-drive-sdk google-api-php-client

for - API de PHP de Google Drive-Carga simple de archivos



google drive api upload file to folder (2)

Utilice este código para autenticar y cargar un archivo de prueba. <YOUR_REGISTERED_REDIRECT_URI> configurar <YOUR_REGISTERED_REDIRECT_URI> (y también en la consola) en este documento para autenticarse.

require_once ''Google/Client.php''; require_once ''Google/Service/Drive.php''; $client = new Google_Client(); // Get your credentials from the console $client->setClientId(''<YOUR_CLIENT_ID>''); $client->setClientSecret(''<YOUR_CLIENT_SECRET>''); $client->setRedirectUri(''<YOUR_REGISTERED_REDIRECT_URI>''); $client->setScopes(array(''https://www.googleapis.com/auth/drive.file'')); session_start(); if (isset($_GET[''code'']) || (isset($_SESSION[''access_token'']) && $_SESSION[''access_token''])) { if (isset($_GET[''code''])) { $client->authenticate($_GET[''code'']); $_SESSION[''access_token''] = $client->getAccessToken(); } else $client->setAccessToken($_SESSION[''access_token'']); $service = new Google_Service_Drive($client); //Insert a file $file = new Google_Service_Drive_DriveFile(); $file->setName(uniqid().''.jpg''); $file->setDescription(''A test document''); $file->setMimeType(''image/jpeg''); $data = file_get_contents(''a.jpg''); $createdFile = $service->files->create($file, array( ''data'' => $data, ''mimeType'' => ''image/jpeg'', ''uploadType'' => ''multipart'' )); print_r($createdFile); } else { $authUrl = $client->createAuthUrl(); header(''Location: '' . $authUrl); exit(); }

Estoy intentando escribir un pequeño script para cargar un archivo local en Google Drive, utilizando la API de PHP de Google Drive. La documentación está muy mal mantenida, pero hasta ahora estoy bastante seguro de que el código debería tener ese aspecto:

<?php include_once ''Google/Client.php''; include_once ''Google/Service/Drive.php''; include_once ''Google/Auth/OAuth2.php''; $client = new Google_Client(); $client->setScopes(array(''https://www.googleapis.com/auth/drive.file'')); $client->setClientId(''dfgdfgdg''); $client->setClientSecret(''dfgdfgdf''); $client->setRedirectUri(''urn:ietf:wg:oauth:2.0:oob''); $service = new Google_Service_Drive($client); $data = file_get_contents("a.jpg"); // create and upload a new Google Drive file, including the data try { //Insert a file $file = new Google_Service_Drive_DriveFile($client); $file->setTitle(uniqid().''.jpg''); $file->setMimeType(''image/jpeg''); $createdFile = $service->files->insert($file, array( ''data'' => $data, ''mimeType'' => ''image/jpeg'', ''uploadType'' => ''media'', )); } catch (Exception $e) { print $e->getMessage(); } print_r($createdFile); ?>

El problema es que no puedo hacer la autenticación correctamente (¿o estoy haciendo otra cosa mal?). El error que recibí es:

HTTP Error: Unable to connect: ''fopen(compress.zlib://https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart) [function.fopen]: failed to open stream: operation failed''

Seguido por este error:

Notice: Undefined variable: createdFile in C:/wamp/www/GoogleAPI/index.php on line 39

¿Qué estoy haciendo mal? ¿Puede proporcionar un script de trabajo simple para cargar un archivo en Google Drive utilizando la API PHP de Google Drive? ¡Gracias de antemano!


Utilizar esta

<?php require_once ''google-api-php-client/src/Google_Client.php''; require_once ''google-api-php-client/src/contrib/Google_DriveService.php''; $client = new Google_Client(); // Get your credentials from the console $client->setClientId(''YOUR_CLIENT_ID''); $client->setClientSecret(''YOUR_CLIENT_SECRET''); $client->setRedirectUri(''urn:ietf:wg:oauth:2.0:oob''); $client->setScopes(array(''https://www.googleapis.com/auth/drive'')); $service = new Google_DriveService($client); $authUrl = $client->createAuthUrl(); //Request authorization print "Please visit:/n$authUrl/n/n"; print "Please enter the auth code:/n"; $authCode = trim(fgets(STDIN)); // Exchange authorization code for access token $accessToken = $client->authenticate($authCode); $client->setAccessToken($accessToken); //Insert a file $file = new Google_DriveFile(); $localfile = ''a.jpg''; $title = basename($localfile); $file->setTitle($title); $file->setDescription(''My File''); $file->setMimeType(''image/jpeg''); $data = file_get_contents($localfile); $createdFile = $service->files->insert($file, array( ''data'' => $data, ''mimeType'' => ''image/jpeg'', )); print_r($createdFile); ?>