Добавляем данные в таблицу Google Sheeet при помощи PHP
Руководство от Гугла для ознакомления. Делано собственно по нему.
1) Включаем в своем аккаунте доступ к Google Sheets API. Сделать это можно прямо на странице «Руководство от Гугла«:
Получаем ID, секрет и файл credentials.json который сохраняем туда, где будет лежать основной скрипт
2) При помощи composer добавляем необходимые библиотеки
1 2 |
composer require google/apiclient:^2.0 composer update |
3) Создаем таблицу в гуглодокументах и узнаем её ID — можно взять прямо из URL. Так-же даем доступ «всем вподряд по ссылке»
4) Создаем следующего вида файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
<?php require 'vendor/autoload.php'; 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('Google Sheets API PHP Quickstart'); $client->setScopes(Google_Service_Sheets::SPREADSHEETS); $client->setAuthConfig('credentials.json'); $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. $tokenPath = 'token.json'; 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 { // 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 = trim(fgets(STDIN)); // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); $client->setAccessToken($accessToken); // Check to see if there was an error. if (array_key_exists('error', $accessToken)) { throw new Exception(join(', ', $accessToken)); } } // 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; } // Get the API client and construct the service object. $client = getClient(); $service = new Google_Service_Sheets($client); // Prints the names and majors of students in a sample spreadsheet: // https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit $spreadsheetId = 'аыукаыука-HW95_v_xwJ-U_L2Xc'; $range = 'Sheets1!A2:A'; $response = $service->spreadsheets_values->get($spreadsheetId, $range); $values = $response->getValues(); var_dump($values); if (empty($values)) { print "No data found.\n"; } else { print "Name, Major:\n"; foreach ($values as $row) { // Print columns A and E, which correspond to indices 0 and 4. printf("%s\n", $row[0]); } }; $values = [ ["2016-02-12", "5453 543543", "=C2+C3"], ["2017-02-12", "5453 543543", "=C2+C3"], ["2018-02-12", "5453 543543", "=C2+C3"], ]; $body = new Google_Service_Sheets_ValueRange( [ 'values' => $values ] ); // valueInputOption - определяет способ интерпретации входных данных // https://developers.google.com/sheets/api/reference/rest/v4/ValueInputOption // RAW | USER_ENTERED $options = array( 'valueInputOption' => 'RAW' ); $service->spreadsheets_values->update( $spreadsheetId, 'Sheets1!A13', $body, $options ); |
,где в переменной $spreadsheetId указываем id таблицы.
5) Запустим скрипт из командной строки. Он предложит открыть ссылку которую выведет на экран. По переходу по ссылке будет показан стандарный диалог «Бал-бла- Разрешить?». Разрешаем. На экран выведется токен. Его нужно будет скопировать в консоль.
После чего снова запускаем скрипт, и в таблице в конец последних заполненных ячеек добавятся данные.