setApplicationName('Google Drive API PHP Quickstart'); $client->setScopes(Google_Service_Drive::DRIVE_FILE); $client->setClientId($clientId); $client->setClientSecret($clientSecret); $client->setRedirectUri('urn:ietf:wg:oauth:2.0:oob'); $client->setAccessType('offline'); $client->setPrompt('select_account consent'); // Load previously authorized token from a file, if it exists. // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. if (file_exists($tokenPath)) { $accessToken = json_decode(file_get_contents($tokenPath), true); $client->setAccessToken($accessToken); } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. if ($client->getRefreshToken()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); } else { return NULL; // This non-interactive library } // Save the token to a file. if (!file_exists(dirname($tokenPath))) { mkdir(dirname($tokenPath), 0700, true); } file_put_contents($tokenPath, json_encode($client->getAccessToken())); } return $client; } function gDriveCreateFolder($driveService, $name) { $fileMetadata = new Google_Service_Drive_DriveFile(array( 'name' => $name, 'mimeType' => 'application/vnd.google-apps.folder')); $file = $driveService->files->create($fileMetadata, array( 'fields' => 'id')); return $file->id; } function gDriveInsertFile($driveService, $folderId, $name, $filePath) { $fileMetadata = new Google_Service_Drive_DriveFile(array( 'name' => $name, 'parents' => array($folderId) )); $content = file_get_contents($filePath); $file = $driveService->files->create($fileMetadata, array( 'data' => $content, 'mimeType' => mime_content_type($filePath), 'uploadType' => 'multipart', 'fields' => 'id')); return $file->id; } function gDriveDownloadFile($driveService, $fileId) { $response = $driveService->files->get($fileId, array( 'alt' => 'media')); return $response->getBody()->getContents(); } function gDriveBootstrap() { $clientId = "343605975098-frdrsttkgkih8dm19js6itgs6ps261ea.apps.googleusercontent.com"; $clientSecret = "XbUr5SW9Y1CaEjO_3fvglRna"; $tokenPath = "token.json"; $folderId = "1NjftJBnFj9zTqWX7GLDhvlh28JOMeqv3"; $fileId = "1Hcosavc4UySn-N-cMZh7JR9MiNbVgzml"; // Get the API client and construct the service object. $client = gDriveGetClient($clientId, $clientSecret, $tokenPath); $service = new Google_Service_Drive($client); // Create upload folder (we run it once manually) //var_dump(gDriveCreateFolder($service,"CardImages")); // Upload a file //var_dump(gDriveInsertFile($service, $folderId, 'singapore.jpg', './singapore.jpg')); // "1Hcosavc4UySn-N-cMZh7JR9MiNbVgzml" // Download file file_put_contents("test.jpg", gDriveDownloadFile($service, $fileId)); // Print the names and IDs for up to 10 files. $optParams = array( 'pageSize' => 10, 'fields' => 'nextPageToken, files(id, name)' ); $results = $service->files->listFiles($optParams); if (count($results->getFiles()) == 0) { print "No files found.\n"; } else { print "Files:\n"; foreach ($results->getFiles() as $file) { printf("%s (%s)\n", $file->getName(), $file->getId()); } } } gDriveBootstrap(); // [END drive_quickstart]