【问题标题】:MIGRATE GOOGLE SHEETS API TO V4 FROM V3将 GOOGLE Sheets API 从 V3 迁移到 V4
【发布时间】:2021-08-19 22:49:01
【问题描述】:

我能够使用电子表格.google.com/feeds/cells....方法访问谷歌表格,但它突然停止工作。我现在收到 404 错误。

有人可以帮忙吗?

【问题讨论】:

标签: json web google-sheets


【解决方案1】:

为了防止这种情况发生,您必须迁移到 Sheets API v4。

事实上,您现在看到的行为是预期的行为,因为 Sheets API v3 目前已被弃用,并已于 2021 年 8 月 2 日关闭。您收到的错误就是由于这个原因。

关于迁移,您可能需要查看这篇文章 here,因为其中包含了您应该为此采取的说明和步骤。

参考

【讨论】:

  • 谢谢 Ale13。这是否意味着我现在必须在我的应用程序中安装 API?我之前能够运行一个简单的 fetch 调用并获得一个 json 响应,而无需 API 密钥,因为该工作表已发布并公开可用。
  • 您的请求看起来如何?
  • 之前我只是对以下内容进行了 GET 请求:spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/… 响应将是一个包含电子表格数据的 JSON 对象。我不必添加任何密钥、安装 API 等。您甚至可以在 Chrome 中访问 URL 并查看 JSON 响应。
【解决方案2】:

试试这个:

function getJson(id,gid){
  var txt = UrlFetchApp.fetch(`https://docs.google.com/spreadsheets/d/${id}/gviz/tq?tqx=out:json&tq&gid=${gid}`).getContentText();
  var jsonString = txt.match(/(?<="table":).*(?=}\);)/g)[0]
  var json = JSON.parse(jsonString)
  return(json)
}
  • 带有电子表格的 id 和工作表的 gid(可能为 0)
  • 请注意,第一行专用于标签,然后 rows[0] 对应于第 2 行,c[0] 对应于 A 列
  • 如果要检索 B1(第 2 列第 1 行):json.cols[1].label
  • 如果要检索 B2(第 2 列第 2 行):json.rows[0].c[1].v

【讨论】:

    【解决方案3】:
    【解决方案4】:

    我有一些使用旧版本的 webapps,刚刚升级到 V4 使用这个格式化的 url: https://sheets.googleapis.com/v4/spreadsheets/'+worksheet_id+'/values/'+tab_name+'?alt=json&key='+key-value

    worksheet_id 仍然是相同的 id 选项卡现在是选项卡名称,而不是 id key 是来自控制台的 API 密钥 (https://console.cloud.google.com/apis/credentials)

    (参考:https://support.google.com/docs/thread/121088347/retrieving-data-from-sheets-results-in-404-error-50-of-the-time

    至关重要的是,json 的格式完全不同,因此您可能需要重新编码解析器。新格式更简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2016-10-13
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多