logging - wget 使用 oauth2 进行谷歌表格

标签 logging oauth-2.0 wget google-sheets-api

我是新的命令行编程者。我想使用 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/

相关文章:

android - 有什么方法可以增加 Android 系统日志文件的大小?

c# - OWIN 中 OAuthAuthorizationServer 的自定义响应

shell - wget 解析为与主机不同的 IP

security - 我应该在我的数据库中保留所有 UUIDv4 生成的 oAuth2 Bearer Tokens 以防止攻击吗?

conda 安装 wget 后的 conda "No module named wget"

java - 通过 wget 在 Linux 上下载 Java JDK 会显示许可证页面

git - 显示传入 git 提交中更改了哪些文件

java - 如何在 JSP 中使用 SLF4J 记录器

MySQL 通用日志缺少时间戳

azure - AdalJS/openid/oauth2 是否支持电子邮件、地址和电话范围类型?