收到的 JSON 有效负载无效。未知名称"requests""请求[0]":找不到字段



我的第一篇帖子,与下面的帖子有关如何使用googlesheetsapi在php中设置基本过滤器?

我已经实现了下面的代码,但收到了这个消息,我不确定是什么原因:

接收到无效的JSON负载。未知名称"请求";在"requests[0]"处:找不到字段。

$criteria = new stdClass();
$criteria->{'2'} = array(
'condition' => array(
'type' => 'NUMBER_EQ',
'values' => array(
'userEnteredValue' => '5'
)
)
);
$requests = [
new Google_Service_Sheets_Request( array(
'requests' => array(
'setBasicFilter' => array(
'filter' => array(
'range' => [
'sheetId'           => 0,
'startRowIndex'     => 4,
'endRowIndex'       => 20,
'startColumnIndex'  => 0,
'endColumnIndex'    => 11
],
'criteria' => $criteria
),
),
'includeSpreadsheetInResponse'  => true,
'responseIncludeGridData'       => true
)
)
)
];

$requestBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array('requests' => $requests));
$response = $sheets->spreadsheets->batchUpdate($spreadsheetId, $requestBody);

修改点:

  • 请将'userEnteredValue' => '5'包含到数组中
  • new Google_Service_Sheets_Request()中不需要'requests' => array(,,,)。因为使用了array('requests' => $requests)
  • 请将'includeSpreadsheetInResponse' => true,'responseIncludeGridData' => true放在$requests之外

当以上几点反映到您的脚本中时,它变成如下。

修改的脚本:

$criteria = new stdClass();
$criteria->{'2'} = array(
'condition' => array(
'type' => 'NUMBER_EQ',
'values' => [array('userEnteredValue' => '5')]
)
);
$requests = [
new Google_Service_Sheets_Request( array(
'setBasicFilter' => array(
'filter' => array(
'range' => [
'sheetId'           => 0,
'startRowIndex'     => 4,
'endRowIndex'       => 20,
'startColumnIndex'  => 0,
'endColumnIndex'    => 11
],
'criteria' => $criteria
)
)
)
)
];
$requestBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
'requests' => $requests,
'includeSpreadsheetInResponse' => true,
'responseIncludeGridData' => true
));
$response = $sheets->spreadsheets->batchUpdate($spreadsheetId, $requestBody);
  • 在这种情况下,可以使用$criteria->{'2'},也可以使用$criteria->{'1'}而不是$criteria->{'2'}

参考文献:

  • 方法:spreadsheets.batchUpdate
  • SetBasicFilterRequest

相关内容

最新更新