温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Trying to append a row to a Google Spreadsheet in PHP
google-sheets php google-api-php-client

其他 - 尝试在PHP中将一行附加到Google Spreadsheet

发布于 2020-03-29 21:36:38

我正在通过Composer(https://packagist.org/packages/google/apiclient使用Google的Client API,并且已经成功通过身份验证并收到了访问令牌。

我正在尝试在驱动器中的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()”对象的格式以及如何在表的末尾附加一行(而不是必须指定特定范围)感到困惑

对于此问题的任何帮助,我将不胜感激。

查看更多

提问者
praine
被浏览
166
rap-2-h 2016-07-07 21:44

我遇到了同样的问题,缺少有关此问题的文档。但是我找到了解决方案。这是一个工作示例:

// ...

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

我认为这是一种奇怪的语法,我没有找到清晰的文档,我只是尝试了一下组合,现在就可以了!不确定这是正确的方法,希望对您有所帮助。