我正在尝试使用PHP Google Sheets API创建图表错误400无效请求[0]。addChart:错误弹出

我正在尝试使用PHP Google Sheets API创建图表错误400无效请求[0]。addChart:错误弹出,php,charts,google-sheets-api,Php,Charts,Google Sheets Api,嗨,我是谷歌工作表api的新手。 我试图用谷歌表格中的数据创建一个图表。当我尝试使用batchUpdate方法将聊天添加到工作表时,会弹出错误 "error": { "code": 400, "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition or EmbeddedObjectPosition.sheetId must be set", "erro

嗨,我是谷歌工作表api的新手。 我试图用谷歌表格中的数据创建一个图表。当我尝试使用batchUpdate方法将聊天添加到工作表时,会弹出错误

"error": {
    "code": 400,
    "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition  or EmbeddedObjectPosition.sheetId must be set",
    "errors": [
      {
        "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition  or EmbeddedObjectPosition.sheetId must be set",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
im目前正在使用PHP Google Sheet api V4 这是导致错误的代码段

        $chart  = new Google_Service_Sheets_EmbeddedChart();
        $chart->setSpec($chart_spec);
        $chart->setPosition(new Google_Service_Sheets_EmbeddedObjectPosition(
            array(
                'sheetId'=>$tab_id,
                'overlayPosition'=> new Google_Service_Sheets_OverlayPosition(array(
                    'offsetXPixels'=>20,
                    'offsetYPixels'=>20,
                )),
            )
        ));
        $created_chart = new Google_Service_Sheets_AddChartRequest($chart);

        $sheets_request = new Google_Service_Sheets_Request();
        $sheets_request->setAddChart($created_chart);

        $requests = [$sheets_request];

        $batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
            'requests' => $requests
        ]);

        $response_batchUpdate = $service->spreadsheets->batchUpdate($fileId,
            $batchUpdateRequest);
我阅读了GoogleAPI文档。没什么帮助

根据,并且正如您在上面粘贴的错误消息中所述,不能同时设置sheetId和OverlyPosition

田地

联合现场位置。对象的位置。正好一个 必须设置该值。位置只能是以下位置之一:

单张号码

这张纸在上面。仅当嵌入对象独立时设置 床单。必须是非负的

覆盖位置对象(覆盖位置)

对象覆盖在栅格顶部的位置

新闻纸布尔值

如果为true,则嵌入对象将放在ID为的新工作表上 为你选择的。仅在书写时使用

如果要添加锚定在栅格上特定单元格的图表,则需要在中设置锚定位置

田地

anchorCell对象(网格坐标)

对象定位到的单元

偏移X像素数

以像素为单位的水平偏移,该对象从 锚细胞

偏移像素数

对象与对象偏移的垂直偏移(以像素为单位) 锚细胞

宽度像素数

对象的宽度,以像素为单位。默认值为600

高度像素数

对象的高度,以像素为单位。默认值为371


否则,如果您想将图表添加到自己的工作表中,您可以指定
sheetId
(如果您想指定要将图表添加到的工作表的ID,或者
newSheet
,如果您只想将其添加到具有任意ID的新工作表中。

var\u dump($tab\u ID=$result1->getrepries()[0]['modelData]['addSheet'][properties][“sheetId”]);我希望图表与源表位于同一张工作表中。我只尝试使用sheetId,但没有覆盖位置,但出现了相同的错误。是的,正如上面的答案和参考文档所描述的,只使用覆盖位置字段。该字段中有一个anchorCell属性,其中包括所需的网格ID、行和列索引锚定图表覆盖。独立的sheetId字段仅用于添加到自己的工作表中。感谢sam,它工作得非常好。问题是我在位置字段中使用sheetId字段,而不是覆盖位置->锚定单元格->sheetId