我尝试使用示例“读取多个范围”:
https://sheets.googleapis.com/v4/spreadsheets/ {SpreadsheetID} /值:batchGet范围= Sheet 1中B:?!B和范围= Sheet 1中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/ 我使用我的电子邮件授权Spreadsheet API v4,最后我生成了一个带密钥的长链接,并看到了对我的数据表内容的正确响应。
我的问题是下一个: 为什么使用Google API(https://developers.google.com/sheets/api/samples/reading)中的示例只能替换电子表格ID。 P.s链接到我的电子表格是公开的,我的电子表格是公开的,并且以JSON格式提供,对于Google Spreadsheet API v4,为了发送带有多个请求的batchGet,正确使用url是什么?
P.s.s我使用另一种方法并且它有效,但为什么第一种方法(v4)不起作用:
https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/od6/public/values?alt=json
当我尝试在一个请求中收到两个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
======================================
的编辑:
SpreadSheetID: 1KBk1J7TJCwnayMnTbaysqvFk98kVDdxXWNw2JYc3bW0
以隐身模式提供:Spreadsheet
采用JSON格式:JSON
参考:Google Sheets API v4: Read multiple ranges
与SpreadSheetID相同的示例:ERROR 403
答案 0 :(得分:3)
我相信你在网址中缺少API。这是来自谷歌电子表格api doc。
获取API密钥:
在API控制台中打开“凭据”页面。
API密钥:不提供OAuth 2.0令牌的请求必须发送 API密钥。密钥标识您的项目并提供API访问, 配额和报告。
API支持API密钥的几种类型的限制。如果API 您需要的密钥尚不存在,然后在中创建一个API密钥 通过单击创建凭据>控制台API密钥。你可以限制 通过单击Restrict键和在生产中使用它之前的键 选择其中一个限制。为确保您的API密钥安全, 遵循安全使用API密钥的最佳实践。
拥有API密钥后,您的应用程序可以附加查询 参数key =所有请求URL的yourAPIKey。
API密钥可以安全地嵌入到URL中;它不需要任何 编码
答案 1 :(得分:2)
除了@ skamble89的回答之外,这个403错误通常是由于授权请求中的错误或错过某些配置引起的。如果您是authorizing requests with OAuth 2.0,请确保使用适当的范围。
确保您有权调用此电子表格,并在开发者控制台中启用Sheets API。
答案 2 :(得分:0)
您必须确保输入key = YOUR_API_KEY作为请求参数。 例如:
https://sheets.googleapis.com/v4/spreadsheets/{sheet_id}/values/Sheet1!A1:D5?key={YOUR_API_KEY}