我是新的命令行编程者。我想使用 wget 下载一张 GoogleSheets 以便每天运行自动过程。我正在寻找如何使用 OAuth2 登录。
我尝试使用下一个命令,但不起作用。生成的存档文件是一个html文件,用于登录gmail帐户,登录后下载Google表格的工作表。
wget -O 文件“https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?gid=0&format=csv” --user=user@gmail.com --password=password
我想使用 OAuth2 key 。我使用 R 程序使用 googlesheets 库进行了操作:
“库(googlesheets)
gs_ls()
为<- gs_title("FILE")
gs_ws_ls(be) ”
任何与命令行有关的想法。提前致谢!!! :)
最佳答案
如果您已有 OAuth2 访问 token ,则可以将其传递到“Authorization” header 中:
wget --header "Authorization: Bearer <your access token>" -O file "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?gid=0&format=csv"
不幸的是,这只是简单的部分。 在命令行上获取 OAuth2 访问 token 更具挑战性。
您应该首先在 API 控制台或云平台控制台中创建自己的项目,这将为您提供自己的 OAuth2 客户端 ID 和客户端 key 。
接下来,来自 Google OAuth2 Developer Playground https://developers.google.com/oauthplayground/ ,然后您可以获得具有离线访问权限的访问 token (更重要的是,刷新 token ),范围为 https://www.googleapis.com/auth/spreadsheets (可能是 https://www.googleapis.com/auth/drive ),通过选中“使用您自己的 OAuth 凭据”,在“OAuth 2.0 配置”(它是“设置”图标 - 右上角的小齿轮)下使用您的客户端 ID 和客户端 key 。
添加客户端 ID 和客户端 key 后,您可以执行左侧的步骤,最终获取访问 token 和刷新 token 。
完成所有这些操作并获得刷新 token 后,您的脚本可以使用 https://developers.google.com/identity/protocols/OAuth2WebServer#offline 处的 REST 指令定期获取新的访问 token 。 .
一定要保护好你的刷新 token ,祝你好运 - 要做到正确是很棘手的事情,有很多移动部件!希望有人会发布更简单的步骤,但这至少可以让您继续前进。
- 蒂姆
关于logging - wget 使用 oauth2 进行谷歌表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931116/