Deploy - Public Google Spreadsheet to API - Method
<?php
$fieldname = '$t';
$ShowWorksheet = 'product-private';
require_once 'config.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($CLIENTID);
$client->setClientSecret($CLIENTSECRET);
$client->setRedirectUri($REDIRECTURL);
$client->setScopes(array('https://www.googleapis.com/auth/drive','https://spreadsheets.google.com/feeds'));
$service = new Google_DriveService($client);
$authUrl = $client->createAuthUrl();
$client->setAccessToken($TOKEN);
$pageToken = NULL;
$parameters = array();
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$files = $service->files->listFiles($parameters);
//print_r($files);
$NumberOfSheets = 3;
$SheetCount = 1;
foreach($files['items'] as $file)
{
$mimeType = $file['mimeType'];
$displayName = $file['title'];
$methodName = strtolower($displayName);
$methodName = str_replace(chr(32),"",$methodName);
$fileId = $file['id'];
// print_r($file);
// echo $displayName . "<br />";
if($mimeType=='application/vnd.google-apps.spreadsheet' && $displayName == $ShowWorksheet)
{
//echo "(" . $mimeType . ") " . $displayName . " - " . $fileId . "<br />";
$SpreadsheetURL = 'https://spreadsheets.google.com/feeds/worksheets/' . $fileId . '/private/full/?v=3.0&access_token=' . $ACCESSTOKEN . "&alt=json";
//echo '<a href="' . $SpreadsheetURL . '">' . $SpreadsheetURL . '</a><br />';
$SpreadsheetResults = file_get_contents($SpreadsheetURL);
$SpreadsheetResults = json_decode($SpreadsheetResults);
//var_dump($SpreadsheetResults);
$Sheet_Count = 1;
// Each Sheet
foreach($SpreadsheetResults as $Sheet)
{
// BEGIN REST
// Set the URL Path
$route = '/' . $methodName . '/';
$app->get($route, function () use ($app,$fileId,$Sheet_Count,$ACCESSTOKEN,$fieldname){
$SpreadsheetContentURL = 'https://spreadsheets.google.com/feeds/list/' . $fileId . '/' . $Sheet_Count . '/private/full?v=3.0&access_token=' . $ACCESSTOKEN . "&alt=json";
//echo '<a href="' . $SpreadsheetContentURL . '">' . $SpreadsheetContentURL . '</a><br />';
$SpreadsheetContent = file_get_contents($SpreadsheetContentURL);
$SpreadsheetContent = str_replace('gsx$','',$SpreadsheetContent);
$SpreadsheetContent = json_decode($SpreadsheetContent);
$SpreadsheetRows = $SpreadsheetContent->{'feed'}->{'entry'};
$ReturnData = array();
foreach($SpreadsheetRows as $SpreadsheetRow)
{
// Build Product Array
$P = array();
// For Each Spreadsheet Row in Service Worksheet
$FieldCount = 1;
foreach($SpreadsheetRow as $key => $value)
{
// The first eight are default sheet, everything after are columns
if($FieldCount > 8){
$P["$key"] = $SpreadsheetRow->$key->$fieldname;
}
$FieldCount++;
}
array_push($ReturnData, $P);
}
// Return JSON
$app->response()->header("Content-Type", "application/json");
echo format_json(json_encode($ReturnData));
});
// End REST
$Sheet_Count++;
}
$SheetCount++;
}
}
?>