2016-06-25 3 views
5

Я использую API-интерфейс Google через Composer (https://packagist.org/packages/google/apiclient), и я успешно прошел аутентификацию и получил токен доступа.Попытка добавить строку в электронную таблицу Google в PHP

Я пытаюсь добавить строку в лист Google на моем диске, но я не могу найти соответствующую документацию, специально предназначенную для PHP.

Вот что у меня до сих пор:

$service = new Google_Service_Sheets($a4e->google); // my authenticated Google client object 
$spreadsheetId = "11I1xNv8cHzBGE7uuZtB9fQzbgrz4z7lIaEADfta60nc"; 
$range = "Sheet1!A1:E"; 
$valueRange= new Google_Service_Sheets_ValueRange(); 
$service->spreadsheets_values->update($spreadsheetId,$range,$valueRange); 

Это возвращает следующее сообщение об ошибке:

Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ "error": { "code": 400, "message": "Invalid valueInputOption: INPUT_VALUE_OPTION_UNSPECIFIED", "errors": [ { "message": "Invalid valueInputOption: INPUT_VALUE_OPTION_UNSPECIFIED", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } } ' in /usr/share/nginx/vendor/google/apiclient/src/Google/Http/REST.php 

я застрял, как в формате «Google_Service_Sheets_ValueRange()» объекта, а также как добавить строку в конец листа, вместо того, чтобы указывать конкретный диапазон.

Я был бы очень признателен за любую помощь в решении этой проблемы.

ответ

8

У меня была такая же проблема, есть недостаток документации об этом. Но я нашел решение. Вот рабочий пример:

// ... 

// Create the value range Object 
$valueRange= new Google_Service_Sheets_ValueRange(); 

// You need to specify the values you insert 
$valueRange->setValues(["values" => ["a", "b"]]); // Add two values 

// Then you need to add some configuration 
$conf = ["valueInputOption" => "RAW"]; 

// Update the spreadsheet 
$service->spreadsheets_values->update($spreadsheetId, $range, $valueRange, $conf); 

Я думаю, что это странно, синтаксис, и я не нашел четкой документации об этом, я просто попытался некоторые комбинации, и теперь он работает! Не уверен, что это в правильном направлении, надеюсь, что это может помочь.

+2

FYI, мы просто добавили небольшой образец для этого в документацию: https://developers.google.com/sheets/guides/values#writing_to_a_single_range –