gpt4 book ai didi

bash - HTTP Google Sheets API v4 如何在没有 OAuth 2.0 的情况下访问?

转载 作者:可可西里 更新时间:2023-11-01 15:09:24 27 4
gpt4 key购买 nike

我的想法是创建一个 google 表格,将其公开,然后从我的工作计算机 linux/bash 访问它以每天读取/写入值。

我有一个公开的谷歌文档表,任何人都可以找到/编辑。这是工作表 ID:1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0

照章办事https://developers.google.com/sheets/api/samples/reading

curl 'https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3'

返回:

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

我读了很多书,尤其是这里Google Sheet API v4我找到了一个复杂的解决方案。也就是说,如果您想在短短 1 小时内访问您的公共(public)工作表。

您浏览到 https://developers.google.com/oauthplayground/获得 v4 api 的授权,然后获得“授权代码”,然后获得“刷新 token ”,最后获得“访问 token ”。

使用此“访问 token ”,您可以像这样访问公共(public)工作表
curl 'https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3' -H "Authorization: Bearer ya29.GlvaBLjrTdsSuSllr3u2nAiC-BOsjvIOE1x5afU3xiafB-FTOdLWDtfabuIMGF1rId5BsZxiTXxrx7VDEtxww4Q1uvW9zRndkfm3I2LZnT1HK2nTWzX_6oXu-NAG"

返回:

{
"range": "Sheet1!A1:A3",
"majorDimension": "ROWS",
"values": [
[
"a1"
],
[
"a2"
],
[
"a3"
]
]
}

完美。理论上“访问 token ”在一小时后过期,“刷新 token ”永远不会过期。因此您将保存 token ,尝试使用“访问 token ”读取工作表,如果失败,请使用“刷新 token ”获取新的“访问 token ”并继续。

但是,我有十几个已兑换/过期的“刷新 token ”,“授权码”已过期,总而言之,几个小时后没有任何效果。为什么?

如何在没有这种授权的情况下使用 curl 访问我的 google sheet form bash?特别是因为我的工作表是公开的,任何人都可以使用浏览器进行编辑。

是否有另一种方法可以通过其他一些永久授权来做到这一点?为什么不使用电子邮件和通行证?

“API key ”被提及但从未解释过。有人可以逐步解释这种方法吗?

最佳答案

所有 Google API 都要求您在 Google developer console 上创建一个项目并识别您自己和您的应用程序,甚至访问公共(public)数据。由于您已将工作表设置为公开,因此您可以转到 google developer console并创建一个公共(public) api key 记得激活 google sheets api。然后只需在您的请求中添加 key=[YourKey] 作为参数即可。

更新开发控制台:

创建项目并获取 key :

Google developer console -> 创建项目 -> credentials下拉 -> API Key

enter image description here

启用它:

Google developer console -> library查找工作表启用它。

更新:

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

表示您尚未向 Google 表明您的身份。 2015 年,谷歌开始要求我们证明自己的身份,你不能在不告诉谷歌你是谁的情况下使用谷歌 API。您可以通过在 [Google 开发者控制台 1 上创建一个项目来做到这一点。 .创建一个 API key 并在您的所有请求中使用该 API key 。这仅适用于公共(public)数据。

https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3?key=YOurKEY

注意:对于私有(private)用户数据,您需要使用 OAuth 并使用 access_token=您的 token 或设置 header

Authorization: Bearer ya29.GlvaBLjrTdsSuSllr3u2nAiC-BOsjvIOE1x5afU3xiafB-FTOdLWDtfabuIMGF1rId5BsZxiTXxrx7VDEtxww4Q1uvW9zRndkfm3I2LZnT1HK2nTWzX_6oXu-NAG.

访问 token 与 API key 不同。

关于bash - HTTP Google Sheets API v4 如何在没有 OAuth 2.0 的情况下访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46583052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com