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

无法通过Google Spreadsheet API访问电子表格的问题求助

问题分析与解决建议

核心问题

你调用Google Sheets API的请求未携带认证所需的access_token参数,这是导致返回null的关键原因:Drive API的请求里明确传递了access_token,但Sheets API的调用完全缺失这个认证信息,谷歌服务器会拒绝请求并返回非JSON格式的错误内容,而@json_decode会将无效内容解码为null。

具体解决步骤

  1. 添加认证参数到Sheets API请求
    修改你的Sheets API调用代码,把access_token加入请求参数中,同时去掉@符号以便排查错误:

    $accessToken = $_SESSION['g_access_token'];
    // 拼接带access_token的请求URL,注意urlencode处理特殊字符
    $url = 'https://sheets.googleapis.com/v4/spreadsheets/1e2jdg1dcCmWhna-zV9ODNNtcgRDi2rGz8xRSsxpcH6c?fields=sheets.properties.title&access_token=' . urlencode($accessToken);
    // 去掉@符号,不要屏蔽错误
    $d_data2 = json_decode(file_get_contents($url), true);
    
  2. 排查具体错误信息
    如果修改后仍有问题,直接打印原始响应内容,查看谷歌返回的具体错误(如权限不足、token过期、文件不存在等):

    $response = file_get_contents($url);
    var_dump($response); // 打印原始响应,定位具体问题
    $d_data2 = json_decode($response, true);
    
  3. 适配团队盘文件(如果适用)
    如果你的表格存储在谷歌团队盘中,需要额外添加supportsAllDrives=true参数,和Drive API的逻辑保持一致:

    $url = 'https://sheets.googleapis.com/v4/spreadsheets/1e2jdg1dcCmWhna-zV9ODNNtcgRDi2rGz8xRSsxpcH6c?fields=sheets.properties.title&access_token=' . urlencode($accessToken) . '&supportsAllDrives=true';
    
  4. 确认文件权限
    验证当前token对应的账号确实拥有该电子表格的读写权限:Drive API能查到文件不代表Sheets API能访问,若表格在团队盘,需确保账号被授予了表格的具体编辑/查看权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:33:19