gpt4 book ai didi

javascript - 如何将 google sheets API v3 迁移到 google sheets Api v4

转载 作者:行者123 更新时间:2023-12-02 16:08:11 25 4
gpt4 key购买 nike

一段时间以来,我一直在使用公共(public)谷歌电子表格作为我的几个网络项目的 JSON 端点。我喜欢这种方法,因为我可以从公共(public)电子表格中检索数据,而无需任何类型的身份验证或 token 来获取数据,我需要做的就是发布电子表格,然后从一个简单的 URL 中获取数据:

fetch(`https://spreadsheets.google.com/feeds/${mode}/${id}/${sheetNum}/public/values?alt=json`).then((res)=>console.log(res));

Google 正在弃用 sheets v3,我对如何迁移到 v4 感到困惑。来自 this answer我知道我需要提供一个通过谷歌云控制台创建的访问 token 。但是我是否需要创建某种特殊的“应用程序”或“工作场所”,或者任何旧的 API token 都可以吗?我尝试了以下方法:

  • 创建 GCP 项目
  • 启用 Google 表格 API
  • 点击创建凭证
  • 使用以下 URL 架构获取数据:
fetch(https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/RANGE?key=API_KEY)

但这给我一个 403 响应。

最佳答案

您正在使用 JSON Alt Type variantGoogle Data protocol .该协议(protocol)已过时并且似乎不再可靠地工作。 GData API Directory告诉:

Google Spreadsheets Data API: GData version is still live. Replaced by the Google Sheets API v4.

Google Sheets API v4是现代的RESTful通常与 client library 一起使用的接口(interface)处理数据请求的身份验证和批处理。如果你不想做一个成熟的客户端实现,David Kutcher使用 jQuery 为 GData JSON Alt 类型提供以下 v4 模拟:

GData(旧API,不推荐):

var url = 'https://spreadsheets.google.com/feeds/list/' +
spreadsheet_id + '/' + tab_ordinal + '/public/values?alt=json';
($.getJSON(url, 'callback=?')).success(function(data) {
// ...
};

V4(新 API,推荐):

var url = 'https://sheets.googleapis.com/v4/spreadsheets/' +
spreadsheet_id + '/values/' + tab_name +
'?alt=json&key=' + api_key;
($.getJSON(url, 'callback=?')).success(function(data) {
// ...
};

...哪里:

  • spreadsheet_id 是电子表格地址中的一长串字母和数字 — 它是 /d//edit 之间的位>
  • tab_ordinal 是工作表的编号——出现在标签栏中的第一个工作表是工作表编号 1,第二个是 2等等
  • tab_name 是工作表的名称,即当您打开电子表格进行编辑时,您在窗口底部的标签栏中看到的名称
  • api_key 是您从 Google Cloud Platform console 获得的 API key

请注意,两个版本的 JSON 输出格式不同。

旧的 GData JSON Alt Type 变体 API 要求电子表格通过文件 > 发布到网络 公开。 V4 要求通过文件 > 共享将文件共享给“知道链接的任何人都可以查看”。

关于javascript - 如何将 google sheets API v3 迁移到 google sheets Api v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68776477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com