我有一个 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_TYPE
、GOOGLE_CLIENT_ID
的环境变量中、GOOGLE_CLIENT_EMAIL
和 GOOGLE_PRIVATE_KEY
。
如果填充了这些键,凭证将从那里加载。不过,在文档中并没有提到这一点。
关于ruby - 如何在没有默认凭据文件的情况下授权 Google 服务帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929650/