无需 Oauth 令牌即可访问 Google 电子表格 API
Posted
技术标签:
【中文标题】无需 Oauth 令牌即可访问 Google 电子表格 API【英文标题】:Access Google spreadsheet API without Oauth token 【发布时间】:2018-07-22 16:26:51 【问题描述】:我已经阅读了谷歌电子表格文档https://developers.google.com/sheets/api/guides/authorizing 它说,如果文档是公开的,则不需要 Oauth 2.0 并且 API 密钥就足够了。我正在尝试使用 hurl 和 api 键作为 parameter.it 进行测试请求,但它仍然给我错误,我需要使用 Oauth,有什么想法吗?
发布https://sheets.googleapis.com/v4/spreadsheets/16woR-nfy6KYBbkQpC2YOT1GzIean8rTzjueUnlzLMiE/values/Sheet1!A1:E1:append?valueInputOption=USER_ENTERED
回应:
"error": "code": 401,"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status": "UNAUTHENTICATED"
【问题讨论】:
预期的 oauth 或登录 cookie 或其他有效的身份验证凭据? @L_Church 是的,也许你知道我应该怎么做才能使用 API 密钥而不是 Oauth?我已经公开了工作表 这对我来说只是一个通用错误。它说它需要oauth,但这并不意味着你需要那个。它说您可以使用登录 cookie 或其他凭据,所以只需四处寻找您可以传入的任何其他内容(也许是 api key idk) 这些信息对您有用吗? ***.com/questions/48412622/… 【参考方案1】:API 密钥不够。您正在尝试使用需要 OAuth 授权的 spreadsheets.values.append:
授权需要以下 OAuth 范围之一:
https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets For more information, see the [Auth Guide](https://developers.google.com/identity/protocols/OAuth2).
注意它说的是 OAuth。
【讨论】:
是的,经过两天的挣扎,我得出了这个结论:D。但感谢澄清【参考方案2】:就我而言,我需要将内容从 Google 电子表格发布到网页。我的解决方法是使用 HTTP GET 调用
获取 https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/range
使用 javascript 对象 XMLHttpRequest 在此解决方案中,您只需使用 API 密钥
【讨论】:
【参考方案3】:您可以使用以下格式:
https://docs.google.com/spreadsheets/d/sheetID/export?format=csv
在将 sheetID 替换为您的公共工作表并读取 csv 文件后,与此 URL 建立一个 URLConnection,就像您通常在您选择的编程语言中所做的那样。
请注意,这仅适用于 Readable Public Google 电子表格,当您不一定需要做 Credentials jig and jive 时,这有点不妥
【讨论】:
以上是关于无需 Oauth 令牌即可访问 Google 电子表格 API的主要内容,如果未能解决你的问题,请参考以下文章
使用 OAuth 刷新令牌获取新的访问令牌 - Google API
无需 oAuth 即可连接到非 Google 服务的 Gmail 插件