Ruby on rails 4 在Heroku临时帐户上未正确检索Google身份验证凭据
我们选择使用env vars来存储所需的信息,而不是在服务器上存储凭据文件:Ruby on rails 4 在Heroku临时帐户上未正确检索Google身份验证凭据,ruby-on-rails-4,heroku,google-calendar-api,google-authentication,Ruby On Rails 4,Heroku,Google Calendar Api,Google Authentication,我们选择使用env vars来存储所需的信息,而不是在服务器上存储凭据文件: GOOGLE_CLIENT_ID GOOGLE_CLIENT_EMAIL GOOGLE_ACCOUNT_TYPE GOOGLE_PRIVATE_KEY 我们正在获得日历服务的授权,如下所示: scopes = ["https://www.googleapis.com/auth/calendar"] auth = ::Google::Auth.new_application_credentials(scopes) se
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_EMAIL
GOOGLE_ACCOUNT_TYPE
GOOGLE_PRIVATE_KEY
我们正在获得日历服务的授权,如下所示:
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!
该过程的每个部分都在本地工作—授权、获取访问令牌、与API交互等。当我们部署到Heroku上的登台环境时,我们无法克服以下错误:
无法读取GOOGLE_应用程序_凭据指定的凭据文件:PUB-key或PRIV-key:nested asn1错误
我在测试中看到了这个错误,所以我知道它可能与丢失的凭据文件(如错误所示)或无效的id、私钥或电子邮件组合有关(因为我不小心用无效值替换了私钥)。在这种情况下,错误消息是相同的
我们已经验证了所有变量都与本地使用的凭据匹配-我缺少什么?确保您正确设置了GOOGLE_PRIVATE_KEY变量
在Heroku上设置需要运行的多行配置变量:
heroku config:add GOOGLE_PRIVATE_KEY=“$(cat PRIVATE_KEY_file)”
将密钥存储在新文件中并使用cat
的替代方法是使用printf
heroku config:add GOOGLE_PRIVATE_KEY="$(printf "-----BEGIN PRIVATE KEY.....")"
太好了,谢谢!我无法理解复制/粘贴到Heroku仪表板配置中,或者通过“Heroku配置:add VAR=“contents of string”进行设置,与读取文件内容之间是否有区别。