【问题标题】:Google Sheet API v4谷歌表格 API v4
【发布时间】:2017-11-28 18:37:12
【问题描述】:

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

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 example 我用我的电子表格 ID 替换了“spreadsheetId”。 但是当我(通过邮递员)发送 GET 请求时,我收到:

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}

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

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

P.s.s 我使用另一种方法,它有效,但为什么第一种方法 (v4) 不起作用:

https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/od6/public/values?alt=json

当我尝试在一个请求中组合 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

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

电子表格ID:1KBk1J7TJCwnayMnTbaysqvFk98kVDdxXWNw2JYc3bW0

在隐身模式下可用:Spreadsheet

JSON 格式:JSON

参考:Google Sheets API v4: Read multiple ranges

与 SpreadSheetID 相同的示例:ERROR 403

【问题讨论】:

  • 这是一个链接,例如:Data Table JSON 格式的相同电子表格:json API v4:error 403
  • 如果您通过服务帐户使用 JWT/OAuth 2.0 进行身份验证,那么您需要确保与服务帐户电子邮件共享特定工作表

标签: google-sheets google-spreadsheet-api


【解决方案1】:

我相信您在 url 中缺少 API。这是来自谷歌电子表格 api 文档。

获取 API 密钥:

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

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

API 支持对 API 密钥的多种类型的限制。如果 API 您需要的密钥不存在,然后在 通过单击创建凭据 > API 密钥进行控制台。你可以限制 在生产中使用它之前通过单击限制键和 选择其中一项限制。为了保证您的 API 密钥安全, 遵循安全使用 API 密钥的最佳做法。

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

API 密钥对于嵌入 URL 是安全的;它不需要任何 编码。

Google Spreadsheet Docs

【讨论】:

  • - 我已经读过了。 - 如果我的电子表格在浏览器的隐身模式下可见,为什么我需要使用 OAuth 2.0? - 也可通过此 url 获得电子表格:spreadsheets.google.com/feeds/list{SpreadsheetID}/od6/public/values?alt=json - 为什么 Google API 参考(示例)有误导性示例? - 我的主要问题:使用“batchGet”命令。
【解决方案2】:

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

https://sheets.googleapis.com/v4/spreadsheets/{sheet_id}/values/Sheet1!A1:D5?key={YOUR_API_KEY}

【讨论】:

    【解决方案3】:

    除了@skamble89 的回答之外,这个403 错误通常是由于授权请求中的某些配置不正确或遗漏造成的。如果您是 authorizing requests with OAuth 2.0,请确保使用正确的范围。

    确保您有权调用此电子表格并在开发者控制台中启用 Sheets API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多