Импорт данных из Google SpreadSheets таблиц

Импорт данных из Google SpreadSheets таблиц

import data from google docs spreadsheets tables excel api v3 php. Реализация импорта данных из таблиц гугл докс по апи на пхп. Для этого требуется создание приложения в console.google, авторизация приложения по oauth2 и запросы по апи. А также библиотека google-api-php-client для работы с апи гугл докс.

<?
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/google-api-php-client/src');
require_once 'Google/autoload.php';

define('APPLICATION_NAME', 'sheet2'); //название приложенис в консоли разработчика
define('CREDENTIALS_PATH', __DIR__ . '/.credentials/sheets.googleapis.com-php-quickstart.json'); //токены, которые получаем при первом запросе приложения
define('CLIENT_SECRET_PATH', __DIR__ . '/client_id.json');	//данные приложения, json-файл можно получить в консоли
define('SCOPES', implode(' ', array(
  Google_Service_Sheets::SPREADSHEETS_READONLY,Google_Service_Drive::DRIVE)
)); //права на приложения (для таблиц и документов)

// if (php_sapi_name() != 'cli') {
//   throw new Exception('This application must be run on the command line.');
// }	//чтобы не запускать через консоль

/**
 * Returns an authorized API client.
 * @return Google_Client the authorized client object
 */
function getClient() {
  $client = new Google_Client();
  $client->setApplicationName(APPLICATION_NAME);
  $client->setScopes(SCOPES);
  $client->setAuthConfigFile(CLIENT_SECRET_PATH);
  $client->setAccessType('offline');

  // Load previously authorized credentials from a file.
  $credentialsPath = CREDENTIALS_PATH;
  if (file_exists($credentialsPath)) {
    $accessToken = file_get_contents($credentialsPath);
  } else {
    // Request authorization from the user.
    $authUrl = $client->createAuthUrl();
    printf("Open the following link in your browser:\n%s\n", $authUrl);
    print 'Enter verification code: ';
    $authCode = '4/nTF53sT6aIPHpkqA7a8nX8CSFY8W3sRrUQ7k'; //код, который получаем после "Open the following link in your browser"

    // Exchange authorization code for an access token.
    $accessToken = $client->authenticate($authCode);

    // Store the credentials to disk.
    if(!file_exists(dirname($credentialsPath))) {
      mkdir(dirname($credentialsPath), 0700, true);
    }
    file_put_contents($credentialsPath, $accessToken);
    printf("Credentials saved to %s\n", $credentialsPath);
  }
  $client->setAccessToken($accessToken);

  // Refresh the token if it's expired.
  if ($client->isAccessTokenExpired()) {
    $client->refreshToken($client->getRefreshToken());
    file_put_contents($credentialsPath, $client->getAccessToken());
  }
  return $client;
}

function getSpreadSheet($spreadsheetId, $range) {
  // Get the API client and construct the service object.
  $client = getClient();
  $service = new Google_Service_Sheets($client);

  // $spreadsheetId = "1sGyOxb-clbxKxYHK-RD-eQ6vM7va9Gld5kAqkjgg";
  // $range = "Лист1!A1:B";
  $response = $service->spreadsheets_values->get($spreadsheetId, $range);
  $values = $response->getValues();
  if (count($values) == 0) {
    return "No data found";
  } else {
    return $values;
  }
}


//google docs spreadsheets
define('SHEET_ID', '12NYJq3aDhPijh1vLmGdANYTFw-OZGUWTG2kOZVs'); //id документа-таблицы
define('TAB_NAME', 'Sheet1'); //название вкладки
define('RANGE', 'A1:J');
$sheet = getSpreadSheet($spreadsheetId=SHEET_ID, $range=TAB_NAME.'!'.RANGE);
print_r($sheet); //массив ячеек