一尘不染

以JSON存取(新式,公开)Google工作表

json

如何通过JSON访问(新式)Google工作表的内容?我的目标是从JavaScript访问值,因此我需要能够通过HTTP下载JSON。

示例:如何以JSON
格式下载此工作表中的数据?

我试图通过网络搜索找到答案,但最终失败了:


阅读 229

收藏
2020-07-27

共1个答案

一尘不染

如果要使用最新的API(v4),则需要执行以下操作:

  1. 生成电子表格API密钥(请参见下面的说明)。
  2. 使您的工作表可以公开访问。
  3. 使用以下形式的请求:
    https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/RANGE?key=API_KEY
    

然后,您将获得干净的JSON响应:

{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "30/20/2016"],
    ["Totals", "$135.5", "7", "3/20/2016"]
  ],
}

请注意,如果要指定一个网页的全部内容,如标识Sheet1完全有效的

有关更多信息,请参见基础阅读


从v4
API开始,所有请求都必须带有标识符(例如API密钥):

向Google Sheets API提出的公开数据请求必须带有标识符,该标识符可以是API密钥或访问令牌。

按照链接文档中的步骤在凭证页面上创建API密钥。

确保:

  1. 在Google Cloud Platform上创建一个新应用。
  2. 创建一个新的API密钥。
  3. 添加Google Sheets API。(API管理器>仪表板>启用API)

请注意,您仍然可以访问公共数据,而不必强制用户登录:

在新的Sheets API
v4中,没有显式的可见性声明。使用电子表格ID进行API调用。如果应用程序无权访问指定的电子表格,则返回错误。否则,呼叫继续进行。

请注意,您 并不 需要将表发布到网上。您需要做的就是确保 任何 知道 链接的人都 可以访问该工作表。

(即,当您单击Google Sheets API上的“ 创建凭据”
时,选择“其他非UI,用户数据”,并显示“无法从没有UI的平台访问用户数据,因为登录需要用户交互。”)安全地忽略该消息。API密钥是您真正需要的,因为这是公共数据。)


常见错误消息:

该请求缺少有效的API密钥。

您没有key=在通话中包含参数。

API密钥无效。请传递有效的API密钥。Google开发人员控制台

您提供了错误的API密钥。确保您正确键入了密钥。如果您还没有密钥,请转到Google开发人员控制台并创建一个。

找不到API密钥。请传递有效的API密钥。
Google开发者控制台API密钥

您的API密钥可能是正确的,但是您很可能没有添加Google表格权限。转到Google开发者控制台API密钥页面,然后添加表格权限。

呼叫者没有权限

您的工作表未设置为公开访问。

2020-07-27