我正在尝试将Google Calendar API集成到我的Rails应用中,因此我可以通过自己的应用创建Google日历活动。
Google提供了一个client_secret.json文件。我可以在本地使用它,但现在不知道如何在heroku上实现密钥文件。
任何人都可以帮我吗?
答案 0 :(得分:2)
它应该只是一个秘密和密钥(名称和值)。
对于heroku,您可以将它们设置为环境变量。像这样:
heroku config:set GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF
(但请使用json文件中提供的信息)
现在。下一步是确保您的应用程序仅以单一方式调用这些密钥。一个选项是使用config / secrets.yml文件。调用secrets文件中的environment变量。然后,您可以在开发中使用dotenv gem,这样您就可以在应用程序的根目录中放置.env文件,放置所有env变量(但不要检入.env文件)
创建一个文件,如果它不存在config/secrets.yml
并在其中添加:
production:
google_secret: ENV['GOOGLE_SECRET']
development:
google_secret: ENV['GOOGLE_SECRET']
(显然,再次确保名称是你选择的名称)
接下来将dotenv添加到您的gem文件并运行bundle
gem 'dotenv-rails', :groups => [:development, :test]
在应用的根目录中创建一个名为.env的新文件。并直接添加您的变量,包括键名和值。
GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF
您可以根据需要添加任意数量的env变量。
现在编辑.gitignore文件并将.env文件添加到其中,以确保您不会意外地检入您的私人信息。
最后,在你需要使用环境变量的任何地方,就是从秘密这样调用它:
Rails.application.secrets.google_secret
我知道这似乎有很多步骤,但它会确保您的开发人员与您的prod匹配,而不会在代码中生成大量if Rails.env.development?
语句。