You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用Google Sheets API生产环境无法追加行问题排查

问题:Google Sheets API追加行本地正常,生产环境无数据(无错误返回)
  • 本地测试向Google Sheet追加1013行数据完全正常
  • 生产环境调用同一Sheet的append接口,无任何行被追加,但调用后无错误返回
  • 不清楚需要提供哪些信息来排查问题

代码实现

//print_r($clients);
// Récupération du Client API Google JT
$client = ExtractionManager::getClient();
$service = new \Google_Service_Sheets($client);

try {
    $spreadsheetId = 'XXXXXXXXXXXXXXXXXXXXXXX'; // id du document google sheet test client
    // Create the value range Object
    $valueRange = new \Google_Service_Sheets_ValueRange();
    // You need to specify the values you insert
    //$valueRange->setValues($clients);
    $valueRange->setValues($clients);
    // Then you need to add some configuration
    $conf = ['valueInputOption' => 'RAW'];
    // mettre le nom de l(onglet que vous optenner dans le googlesheet
    $range = 'Sheet1';
    // Update the spreadsheet
    $result = $service->spreadsheets_values->append($spreadsheetId, $range, $valueRange, $conf);
    print_r($result);
} catch (Exception $e) {
    var_dump('Message: ' . $e->getMessage());
}

return json_encode([
    'Nombre de client ajoute' => ($result->updates->updatedRows == null)?0:$result->updates->updatedRows,
    'Nombre de client a ajouter' => count($clients)
]);

API返回结果

Google\Service\Sheets\AppendValuesResponse Object
(
[spreadsheetId] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[tableRange] => Sheet1!A1:K1
[updatesType:protected] => Google\Service\Sheets\UpdateValuesResponse
[updatesDataType:protected] =>
[internal_gapi_mappings:protected] => Array
    (
    )

[modelData:protected] => Array
    (
    )

[processed:protected] => Array
    (
    )

[updates] => Google\Service\Sheets\UpdateValuesResponse Object
    (
        [spreadsheetId] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        [updatedCells] =>
        [updatedColumns] =>
        [updatedDataType:protected] => Google\Service\Sheets\ValueRange
        [updatedDataDataType:protected] =>
        [updatedRange] => Sheet1!A2
        [updatedRows] =>
        [internal_gapi_mappings:protected] => Array
            (
            )

        [modelData:protected] => Array
            (
            )

        [processed:protected] => Array
            (
            )

    )

)

排查建议

  • 验证生产环境的API客户端权限:确认生产环境使用的服务账号/授权凭证已被添加到目标Sheet的共享列表中,且拥有编辑权限。本地可能使用个人账号授权,而生产环境的服务账号可能未获得Sheet访问权限
  • 检查$clients数据结构:Google Sheets API要求values参数必须是二维数组(每行数据对应一个子数组)。生产环境的$clients可能为空数组、一维数组,或者数据格式不符合要求,导致API仅操作了单个单元格(返回的updatedRange为Sheet1!A2)
  • 记录生产环境的请求日志:添加日志输出count($clients)的值,以及$clients的具体结构,确认生产环境确实有数据要提交;也可以开启Google API的请求日志,查看实际发送的请求内容
  • 补充append配置参数:尝试在$conf中添加'insertDataOption' => 'INSERT_ROWS',强制API插入新行而非覆盖现有单元格。默认的OVERWRITE模式下,如果目标单元格无内容,可能不会触发新行插入
  • 检查Sheet状态:确认目标Sheet没有被设置为“仅查看”权限,也没有达到行列数量限制(单Sheet最大100万行)

内容的提问来源于stack exchange,提问作者pepito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:40:30