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

从Google Sheets提取数据旧接口返回404,求自动化获取数据可行方案

故障原因

你正在使用的spreadsheets.google.com/feeds/前缀接口是早已被官方弃用的GData API,近期该接口正式完全下线,因此会从偶发404变为全量请求报错。

解决方案

方案1:使用公开表格导出端点(推荐,零额外依赖,适配现有cron逻辑)

如果你的Google Spreadsheet已经设置为「任何人有链接即可查看」,可以直接使用官方的公开导出端点获取CSV或JSON格式的机器可读数据,无需额外申请密钥或引入SDK。

  • 通用URL格式:
    https://docs.google.com/spreadsheets/d/【表格ID】/gviz/tq?tqx=out:【格式】&sheet=【工作表序号/名称】
  • 你的场景下对应请求URL:
    要获取JSON格式直接替换原有URL即可:
    https://docs.google.com/spreadsheets/d/1KxpfpHzCstsg_hvG8v6ksgjt3ghAHb1URwW41mW7Vgs/gviz/tq?tqx=out:json&sheet=1
    要获取CSV格式则使用:
    https://docs.google.com/spreadsheets/d/1KxpfpHzCstsg_hvG8v6ksgjt3ghAHb1URwW41mW7Vgs/gviz/tq?tqx=out:csv&sheet=1

PHP请求示例(CSV格式):

<?php
$spreadsheetId = '1KxpfpHzCstsg_hvG8v6ksgjt3ghAHb1URwW41mW7Vgs';
$sheet = 1;
// 如需JSON格式将out:csv改为out:json即可
$url = "https://docs.google.com/spreadsheets/d/{$spreadsheetId}/gviz/tq?tqx=out:csv&sheet={$sheet}";

// 若环境关闭allow_url_fopen,可替换为curl实现
$response = file_get_contents($url);
if (!$response) {
    // 错误处理逻辑
    exit('获取数据失败');
}

// 解析CSV为二维数组
$data = array_map('str_getcsv', explode("\n", trim($response)));
// 后续沿用原有业务逻辑处理$data即可
?>

方案2:使用Google Sheets API v4(适配非公开表格/复杂读写需求)

如果表格未公开,或者需要对表格进行写入、筛选等复杂操作,可使用官方最新的V4版本API:

  1. 在Google Cloud控制台创建项目,开通Sheets API,获取API密钥
  2. 引入官方PHP SDK,调用对应接口读取数据即可
  3. 权限范围仅需配置只读权限即可满足数据抓取需求
注意事项
  • 必须确认表格共享权限为「任何人有链接即可查看」,否则公开导出端点会返回权限错误
  • 如需避免CDN缓存旧数据,可在请求URL末尾添加随机参数,如&_t= . time()
  • 单表行数超过10万时建议拆分表格,或使用API v4分页读取,避免导出失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:06:03