first commit
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright 2018 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// [START drive_quickstart]
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
/**
|
||||
* Returns an authorized API client.
|
||||
* @return Google_Client the authorized client object
|
||||
*/
|
||||
function gDriveGetClient($clientId, $clientSecret, $tokenPath)
|
||||
{
|
||||
$client = new Google_Client();
|
||||
$client->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]
|
||||
Reference in New Issue
Block a user