Google Sheet API v4

Ale*_*gin 4 google-sheets google-spreadsheet-api

我尝试使用示例“读取多个范围”:

https://sheets.googleapis.com/v4/spreadsheets/ {SpreadsheetID} / values:batchGet?ranges = Sheet1!B:B&ranges = Sheet1!D:D&valueRenderOption = UNFORMATTED_VALUES?majorDimension = COLUMNS

来自:Google Sheets API v4示例 我用电子表格ID替换了“ spreadsheetId”。但是当我发送GET请求(由邮递员发送)时,我收到:

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}
Run Code Online (Sandbox Code Playgroud)

比起我使用https://developers.google.com/oauthplayground/ ,我通过电子邮件对Spreadsheet API v4进行了授权,最后我生成了一个包含密钥的长链接,并看到数据表内容的正确响应。

接下来是我的问题:为什么不能使用Google API(https://developers.google.com/sheets/api/samples/reading)中的示例仅替换电子表格ID。Ps链接到我的电子表格是公开的,我的电子表格是公开的,并且以JSON格式提供,并且Google Spreadsheet API v4正确使用url以便发送具有多个请求的batchGet?

Pss我使用另一种方法,它可以工作,但是为什么第一种方法(v4)不起作用:

https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/od6/public/values?alt=json
Run Code Online (Sandbox Code Playgroud)

当我尝试在一个请求中组合2个API并收到错误“重复查询参数范围不一致”时

https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/od6/public/values:batchGet?ranges=Sheet1!B:B&ranges=Sheet1!D:D&valueRenderOption=UNFORMATTED_VALUES?majorDimension=COLUMNS
Run Code Online (Sandbox Code Playgroud)

=====================================
编辑:

SpreadSheetID:1KBk1J7TJCwnayMnTbaysqvFk98kVDdxXWNw2JYc3bW0

在隐身模式下可用:电子表格

JSON格式:JSON

参考:Google Sheets API v4:读取多个范围

带有SpreadSheetID的相同示例:错误403

ska*_*e89 5

我相信您在网址中缺少API。这是来自Google电子表格api文档。

要获取API密钥:

在API控制台中打开“凭据”页面。

API密钥:不提供OAuth 2.0令牌的请求必须发送API密钥。该密钥标识您的项目,并提供API访问,配额和报告。

API支持对API密钥的几种类型的限制。如果所需的API密钥尚不存在,请在控制台中通过单击创建凭据> API密钥来创建API密钥。您可以在生产中使用该键之前先对其进行限制,方法是单击“限制键”并选择“限制”之一。为确保API密钥的安全,请遵循最佳实践以安全使用API​​密钥。

拥有API密钥后,您的应用程序可以将查询参数key = yourAPIKey附加到所有请求URL。

API密钥可以安全地嵌入URL;它不需要任何编码。

Google Spreadsheet Docs

  • - 我已经读过了。- 如果我的电子表格在浏览器的隐身模式下可见,为什么我需要使用 OAuth 2.0?- 还可以通过以下网址获得电子表格:https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/od6/public/values?alt=json - 为什么 Google API 参考(示例)具有误导性示例?- 对我来说的主要问题:使用“batchGet”命令。 (2认同)

Eli*_*Eli 5

您必须确保传入 key=YOUR_API_KEY 作为请求参数。例如:

https://sheets.googleapis.com/v4/spreadsheets/{sheet_id}/values/Sheet1!A1:D5?key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)