Задать вопрос
serg_small_developer
@serg_small_developer
Начинающий прогер

Как создать таблицу через API Google Docs?

require_once __DIR__ . '/vendor/autoload.php';

			function initializeSheets(){
			 $KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';

			  $client = new Google_Client();
			  $client->setApplicationName("Google Sheets API PHP Quickstart");
			  $client->setAuthConfig($KEY_FILE_LOCATION);
			  $sheets = $client->setScopes(implode(' ', array(Google_Service_Sheets::SPREADSHEETS_READONLY)));
			  return $sheets;
			}
			$sheets = initializeSheets();
			
				$sfsef = new Google_Service_Sheets_GridProperties();
				$sfsef->setRowCount(8);
				$sfsef->setColumnCount(5);
				
				$sheet111 = new Google_Service_Sheets_SheetProperties();
				$sheet111->setSheetType('GRID');
				$sheet111->setSheetId(0);
				$sheet111->setTitle('название листа');
				$sheet111->setGridProperties($sfsef);
				
				$sheet = new Google_Service_Sheets_Sheet();
				$sheet->setProperties($sheet111);
				
				$properties = new Google_Service_Sheets_SpreadsheetProperties();
				$properties->setTitle('название документа');
				$properties->setLocale('ru_RU');
				
				$spreadsheets1 = new Google_Service_Sheets_Spreadsheet();
				$spreadsheets1->setProperties($properties);
				$spreadsheets1->setSheets($sheet);
				
				$result = $sheets->spreadsheets->create( $spreadsheets1 ) ;
				
				echo '<pre>';
					print_r($result);
				echo '</pre>';

Кто подскажет где я накосячил?), нужно создать таблицу через API.
Все сделал по тому материалу который нашёл в сети, но на выходе выдает ошибку:
148854491802_kiss_6kb.png
Я так думаю, что тут не хватает ещё чего-то в конце, т.к. делал по примеру для аналитики и там в конце была функция
Google_Service_AnalyticsReporting_GetReportsRequest
, но подобной функции для таблиц я найти не могу.
  • Вопрос задан
  • 1836 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
serg_small_developer
@serg_small_developer Автор вопроса
Начинающий прогер
Оставляю рабочий код тут, может коту-то будет нужно, т.к. я нашол только одну годную статью и то на питоне, никто не хочет выкладывать и делиться, но я не жадный)

require_once __DIR__ . '/vendor/autoload.php';

			function initializeSheets(){
			 $KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';

			  $client = new Google_Client();
			  $client->setApplicationName("Google Sheets API PHP Quickstart");
			  $client->setAuthConfig($KEY_FILE_LOCATION);
			  $client->setScopes(['https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/spreadsheets']);
			 return $client;
			}
			$sheets = new Google_Service_Sheets(initializeSheets());
			//создаем саму таблицу
				$sfsef = new Google_Service_Sheets_GridProperties();
				$sfsef->setRowCount(8);
				$sfsef->setColumnCount(5);
				
				$sheet111 = new Google_Service_Sheets_SheetProperties();
				$sheet111->setSheetType('GRID');
				$sheet111->setSheetId(0);
				$sheet111->setTitle('название листа');
				$sheet111->setGridProperties($sfsef);
				
				$sheet = new Google_Service_Sheets_Sheet();
				$sheet->setProperties($sheet111);
				
				$properties = new Google_Service_Sheets_SpreadsheetProperties();
				$properties->setTitle('название документа');
				$properties->setLocale('ru_RU');
				
				$spreadsheets1 = new Google_Service_Sheets_Spreadsheet();
				$spreadsheets1->setProperties($properties);
				$spreadsheets1->setSheets($sheet);
				
				$result = $sheets->spreadsheets->create( $spreadsheets1 ) ;
				
				//даем доступ для редактирование кому угодно
				$drive = new Google_Service_Drive(initializeSheets());
		
				$drive1 = new Google_Service_Drive_Permission();
				$drive1->setType('anyone');
				$drive1->setRole('writer');
				$drive1s = $result['spreadsheetId'];
				$resultqqq = $drive->permissions->create( $drive1s, $drive1 ) ;

				echo '<pre>';
					print_r($result);
				echo '</pre>';
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Учитывая, что проблема в переменной $sheets (у этого объекта нет свойства spreadsheets), а она создаётся в функции initializeSheets() и больше нигде не изменяется, можно считать, что проблема внутри функции. Полагаю, что дело во флаге READONLY, который как бы намекает, что вы ничего создавать и редактировать не планируете.

P.S. Когда на Тостере выкладывают код картинкой, где-то во вселенной плачет котёнок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы