14 bash curl http google-api google-sheets
我的想法是创建一个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"
}
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多内容,特别是Google Sheet API v4,我发现了一个复杂的解决方案.也就是说,如果您想在短短的1小时内访问公共工作表.
您浏览到https://developers.google.com/oauthplayground/获取v4 api的授权,然后获取"授权代码",然后获取"刷新令牌",最后获取"访问令牌".
使用此"访问令牌",您可以像这样访问公共表
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"
]
]
}
Run Code Online (Sandbox Code Playgroud)
完善.理论上,"访问令牌"在一小时后到期,"刷新令牌"永不过期.因此,您将保存令牌,尝试使用"访问令牌"读取表单,如果失败则使用"刷新令牌"获取新的"访问令牌"并继续.
但是,我已经有十几个"刷新令牌"被兑换/过期,"授权码"已过期,几个小时后一切都无效.为什么?
如何在没有这种授权的情况下使用curl访问我的谷歌表格bash?特别是因为我的工作表是公开的,任何人都可以使用浏览器进行编辑.
是否有另一种方法可以通过其他永久授权来完成此操作?为什么不使用电子邮件并通过?
提到"API密钥"但从未解释过.有人可以一步一步解释这个方法吗?
DaI*_*mTo 17
所有Google API都要求您在[Google开发人员控制台1上创建项目,并标识您自己和您的应用程序,甚至是访问公共数据.由于您已将工作表设置为公开,因此您只需访问Google开发者控制台并创建公共API密钥,请记住激活Google工作表api.然后只需在您的请求中添加key = [YourKey]作为参数.
更新开发控制台:
创建项目并获取密钥:
Google开发人员控制台 - >创建项目 - > 凭据下拉菜单 - > API密钥
启用它:
更新:
{"error":{"code":403,"message":"请求缺少有效的API密钥.","status":"PERMISSION_DENIED"}}
意味着您尚未向Google表明自己的身份.在2015年Google Start要求我们确定您自己不能使用Google API而不告诉谷歌您是谁.您可以通过在[Google开发者控制台1]上创建项目来实现.创建API密钥并在所有请求中使用该API密钥.这仅适用于公共数据.
注意:对于私人用户数据,您需要使用OAuth并使用access_token =您的令牌或设置标头
授权:承载ya29.GlvaBLjrTdsSuSllr3u2nAiC-BOsjvIOE1x5afU3xiafB-FTOdLWDtfabuIMGF1rId5BsZxiTXxrx7VDEtxww4Q1uvW9zRndkfm3I2LZnT1HK2nTWzX_6oXu-NAG.
访问令牌与API密钥不同.
小智 5
如果你不想搞乱OAuth2,也许更简单的解决方案是使用第三方软件。https://sheetdb.io允许您使用 Google 电子表格并为您执行 OAuth2。此外,该 API 比 Google 更简单,请查看此处的文档: https: //docs.sheetdb.io
| 归档时间: |
|
| 查看次数: |
11287 次 |
| 最近记录: |