ruby-on-rails-4 - 在 Heroku 临时帐户上未正确检索 Google Auth 凭据

标签 ruby-on-rails-4 heroku google-calendar-api google-authentication

我们选择使用环境变量来存储所需的信息,而不是在服务器上存储凭据文件:

GOOGLE_CLIENT_ID
GOOGLE_CLIENT_EMAIL
GOOGLE_ACCOUNT_TYPE
GOOGLE_PRIVATE_KEY

我们正在获取 CalendarService 的授权,如下所示:

scopes = ["https://www.googleapis.com/auth/calendar"]
auth = ::Google::Auth.new_application_credentials(scopes)
service = ::Google::Apis::CalendarV3::CalendarService.new
service.authorization = auth
service.authorization.fetch_access_token!

该过程的每个部分都在本地工作 - 授权、获取访问 token 、与 API 交互等。当我们部署到 Heroku 上的临时环境时,我们无法克服以下错误:

无法读取 GOOGLE_APPLICATION_CREDENTIALS 指定的凭据文件:PUB key 和 PRIV key 都不是:嵌套 asn1 错误

我在测试中看到了这个错误,所以我知道它可能与缺少的凭据文件(如错误所示)相关,或者与无效的私有(private) ID 相关 key 或电子邮件组合(因为我不小心用无效值替换了私钥)。在这种情况下,错误消息是相同的。

我们已经验证所有变量都与本地使用的凭据匹配 - 我缺少什么?

最佳答案

确保您正确设置 GOOGLE_PRIVATE_KEY 变量。

在 Heroku 上设置多行配置变量,您需要运行:

heroku config:add GOOGLE_PRIVATE_KEY="$(cat private_key_file)"

关于ruby-on-rails-4 - 在 Heroku 临时帐户上未正确检索 Google Auth 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36201889/

相关文章:

ruby-on-rails - allocate_attributes 和 ActiveModel::ForbiddenAttributesError

ruby-on-rails-4 - Rails 上的 Livereload 未显示 SCSS 更改

ruby-on-rails - 如何在 Rails 应用程序中处理电子邮件通知?

c# - 将 SalesForce 日历与 Google 日历同步

google-calendar-api - Events.list : singleEvents Setting not Respected for freeBusyReader calendar

javascript - javascript 中的 Google Calendar API 时区覆盖

ruby - 您如何监控 sidekiq 进程?

ruby-on-rails - web.1 | bundler : command not found: puma

Python-Heroku - aiohttp 3.7.3 要求 chardet<4.0,>=2.0,但您将拥有不兼容的 chardet 4.0.0

ruby-on-rails - 简单的测试应用程序部署到 Heroku 但无法运行