I realized this after a bit of experimentation.
When you call the get() method with the alt=>media parameter, as indicated in the docs, you get a basic HTTP response that is the object of the Guzzle response (as apparently the client library uses Guzzle for it that underlies the transport).
From there, you can call any Guzzle response method, for example $response->getStatusCode() , or you can get a stream of the actual contents of the file.
It would be helpful if they fixed it somewhere!
EDIT: Here is an example if someone else is stuck on how to save a file.
<?php date_default_timezone_set("Europe/London"); require_once 'vendor/autoload.php'; // I'm using a service account, use whatever Google auth flow for your type of account. putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json'); $client = new Google_Client(); $client->addScope(Google_Service_Drive::DRIVE); $client->useApplicationDefaultCredentials(); $service = new Google_Service_Drive($client); $fileId = "0Bxxxxxxxxxxxxxxxxxxxx"; // Google File ID $content = $service->files->get($fileId, array("alt" => "media")); // Open file handle for output. $outHandle = fopen("/path/to/destination", "w+"); // Until we have reached the EOF, read 1024 bytes at a time and write to the output file handle. while (!$content->getBody()->eof()) { fwrite($outHandle, $content->getBody()->read(1024)); } // Close output file handle. fclose($outHandle); echo "Done.\n" ?>
source share