2016-06-25 48 views
5

Sto utilizzando l'API client di Google tramite Composer (https://packagist.org/packages/google/apiclient) e ho eseguito correttamente l'autenticazione e ricevuto un token di accesso.Tentativo di aggiungere una riga a un foglio di calcolo Google in PHP

Sto cercando di aggiungere una riga a un foglio Google nel mio disco, ma non riesco a trovare alcuna documentazione pertinente che indirizzi specificamente PHP.

Ecco quello che ho finora:

$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); 

Questo restituisce il seguente errore:

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 

mi sono bloccato per quanto riguarda il formato del "Google_Service_Sheets_ValueRange()" oggetto, e anche come aggiungere una riga alla fine del foglio, piuttosto che dover specificare un intervallo particolare.

Apprezzerei molto qualsiasi aiuto con questo problema.

risposta

8

Ho avuto lo stesso problema, c'è una mancanza di documentazione su questo. Ma ho trovato una soluzione. Ecco un esempio di lavoro:

// ... 

// 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); 

Penso che sia la sintassi strano, e non ho trovato una documentazione chiara a questo proposito, ho appena provato una combinazione ed ora funziona! Non sono sicuro che sia il modo , spero che possa essere d'aiuto.

+2

FYI, abbiamo appena aggiunto un piccolo esempio per questo nella documentazione: https://developers.google.com/sheets/guides/values#writing_to_a_single_range –