ruby - 如何在没有默认凭据文件的情况下授权 Google 服务帐户?

标签 ruby heroku oauth google-api-ruby-client

我有一个 Google Service Account我的应用程序使用它从 Google Analytics 检索数据。

当我创建帐户时,我下载了一个client_secrets 文件,其中包含通过 OAuth 授权所需的所有必要信息,并且我在名为 GOOGLE_APPLICATION_CREDENTIALS 的环境变量中记录了该文件的路径> 根据 Google's documentation .

我现在可以像这样获得经过身份验证的客户端:

authorization = Google::Auth.get_application_default(scopes) 

此方法从文件中读取凭据,在本地工作,但我的应用程序托管在无法存储文件的 Heroku 上。

The documentation states我可以提供此文件(不能),在官方 Google 服务上运行我的应用程序(不会),或者遇到错误。

如何在没有 client_secrets 文件的情况下验证我的服务帐户?

最佳答案

我在 source code 中找到了答案google-auth-library-ruby gem。

事实证明还有另一种选择:从 client_secrets 文件中获取值并将它们放入名为 GOOGLE_ACCOUNT_TYPEGOOGLE_CLIENT_ID 的环境变量中、GOOGLE_CLIENT_EMAILGOOGLE_PRIVATE_KEY

如果填充了这些键,凭证将从那里加载。不过,在文档中并没有提到这一点。

关于ruby - 如何在没有默认凭据文件的情况下授权 Google 服务帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929650/

相关文章:

ruby-on-rails - Rails form_for 多个不同的类对象?

ruby-on-rails - 在 Rails 中使用回形针设置原始图像的路径?

ruby - 尝试删除卡时 Stripe API 抛出错误

git - 如何从失效的 Heroku 应用程序中检索源代码?

oauth - 如何在electron中集成OAuth2.0登录

ssl - 基于 OAuth token 的身份验证是绑定(bind)到物理机器还是绑定(bind)到私钥?

ruby-on-rails - 如何在 digital ocean 上一键部署rails app?

ruby-on-rails - 无法将应用程序推送到 heroku... env : bundle: No such file or directory

ruby-on-rails - phusion 乘客是否使用 fork ,如果是,在哪里设置 after_fork 配置?

oauth - 尝试在使用 OAuth 展示器时展示 UINavigationController