如何使用PHP版本的Google Sheet API v4合并单元格

如何使用PHP版本的Google Sheet API v4合并单元格,php,google-api,google-api-php-client,google-sheets-api,Php,Google Api,Google Api Php Client,Google Sheets Api,我已经按照《快速入门指南》和API v4文档成功地设置了凭据和访问权限 一切都很好,我成功地尝试: 更新电子表格标题 每个单元格中的读/写值 等等 但是,在尝试合并某些单元格时,我不断遇到以下错误: 致命错误:未捕获的Google_服务_异常:{“错误”:{“代码”: 400,“消息”:“接收到无效的JSON负载。未知名称 \“请求”处的“合并类型”:找不到字段。\n无效的JSON负载 已接收。“请求”处的未知名称“范围”:找不到字段。“, “错误”:[{”消息“:“接收到无效的JSON有效

我已经按照《快速入门指南》和API v4文档成功地设置了凭据和访问权限

一切都很好,我成功地尝试:

  • 更新电子表格标题
  • 每个单元格中的读/写值
  • 等等
但是,在尝试合并某些单元格时,我不断遇到以下错误:

致命错误:未捕获的Google_服务_异常:{“错误”:{“代码”: 400,“消息”:“接收到无效的JSON负载。未知名称 \“请求”处的“合并类型”:找不到字段。\n无效的JSON负载 已接收。“请求”处的未知名称“范围”:找不到字段。“, “错误”:[{”消息“:“接收到无效的JSON有效负载。名称未知 \“请求”处的“合并类型”:找不到字段。\n无效的JSON负载 已接收。“请求”处的未知名称“范围”:找不到字段。“, “域”:“全局”,“原因”:“badRequest”}],“状态”: “无效的_参数”}

源代码:

<?php

include_once(__DIR__.'/vendor/autoload.php');
include_once(__DIR__.'/client.php');

$id_spreadsheet = '12xymzMe8OLbX9vw84'; // My spreadsheet ID (redacted for Stackoverflow)

/* Retrieve the API access */
$service = new Google_Service_Sheets(getClient());

/* Merge header columns */
$range = new Google_Service_Sheets_GridRange();
$range->setStartRowIndex(0);
$range->setEndRowIndex(1);
$range->setStartColumnIndex(1);
$range->setEndColumnIndex(24);
$range->setSheetId(0);

$request = new Google_Service_Sheets_MergeCellsRequest();
$request->setMergeType('MERGE_COLUMNS');
$request->setRange($range);

$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(['requests' => $request]);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '</pre>', "\n";

如果您尚未解决此问题,则问题出在您发送的请求中,
尝试在
Google\u Service\u Sheets\u BatchUpdateSpreadsheetRequest
setRequests
方法中设置请求

$batchUpdateRequest=new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests($request);
$response=$service->spreadsheets->batchUpdate($id\u电子表格,$batchUpdateRequest);
回显“”,变量导出($response,true),“”,“\n”;

有一份说明如何使用该功能的文档。虽然它是用python编写的,但也在中进行了解释。但是这里已经解释了如何使用这个函数。谢谢。在这里发布之前,我已经仔细阅读了文档和示例以及您提到的帖子。不幸的是,Google提供的Python和PHPAPI库的工作方式不同。
$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests($request);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '</pre>', "\n";