【问题标题】:"Invalid requests[0].updateCells: Invalid field" when using barchUpdate on googlespreadsheet API在 googlespreadsheet API 上使用 barchUpdate 时出现“无效请求 [0].updateCells:无效字段”
【发布时间】:2021-09-13 14:07:16
【问题描述】:
$range1 = new Google_Service_Sheets_GridRange();
$range1->setStartRowIndex(92);
$range1->setEndRowIndex(92);
$range1->setStartColumnIndex(4);
$range1->setEndColumnIndex(4);
$range1->setSheetId(1433074761);

$range2 = new Google_Service_Sheets_GridRange();
$range2->setStartRowIndex(92);
$range2->setEndRowIndex(92);
$range2->setStartColumnIndex(2);
$range2->setEndColumnIndex(2);
$range2->setSheetId(1433074761);

$request1 = new Google_Service_Sheets_UpdateCellsRequest();
$request1->setFields('aaaaaaaaaaaaaaaaaaaaaaaaaaaa');
$request1->setRange($range1);
$body1 = new Google_Service_Sheets_Request();
$body1->setUpdateCells($request1);



$request2 = new Google_Service_Sheets_UpdateCellsRequest();
$request2->setFields('aaaaaaaaaaaaaaaaaaaaaaaaaaa');
$request2->setRange($range2);
$body2 = new Google_Service_Sheets_Request();
$body2->setUpdateCells($request2);

$batchUpdateRequest = new \Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests([$body1, $body2]);

所以我能够修复我遇到的错误,但现在我收到通过 setFields 方法输入的字段的错误。我以为你可以放任何字符串,但似乎根本不是这样。文档似乎没有提供可能是什么问题。

我得到错误:

Fatal error: Uncaught Google\Service\Exception: {
  "error": {
    "code": 400,
    "message": "Invalid requests[0].updateCells: Invalid field: aaaaaaaaaaaaaaaa
aaaaaaaaaaaa",
    "errors": [
      {
        "message": "Invalid requests[0].updateCells: Invalid field: aaaaaaaaaaaa
aaaaaaaaaaaaaaaa",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

https://developers.google.com/resources/api-libraries/documentation/sheets/v4/php/latest/class-Google_Service_Sheets_GridRange.html

文档本身说参数可以混合,所以可以是任何东西,但它似乎不起作用。

https://php.watch/versions/8.0/mixed-type

【问题讨论】:

    标签: php google-sheets google-sheets-api


    【解决方案1】:

    即使参数的类型是混合的。这并不意味着价值可以是任何东西。您需要在参考文档中查看。

    在UpdateCellsRequest,

    字段 - 字符串(FieldMask 格式)

    应更新的 CellData 字段。必须至少指定一个字段。根是 CellData; “行。值。”不应指定。单个“*”可以用作列出每个字段的简写。

    查看 CellData here 的可用字段。


    我对您的代码的担忧是,您打算使用 UpdateCellsRequest 但您没有提供要使用的 rowData(要写入的数据)。您刚刚提供了一个 gridrange(写入数据的范围)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2015-04-29
      • 1970-01-01
      相关资源
      最近更新 更多