无需 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 插件

Google API Oauth php 永久访问

无需登录即可获取 Instagram 访问令牌

Android 中有效的 google 帐户 OAuth 2 令牌

仅使用访问令牌使用 Google API 发送电子邮件