Это должен быть секрет и ключ (имена и значения).
Для heroku вы можете установить их как переменные окружения. Как так:
heroku config:set GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF
(но, пожалуйста, используйте информацию, содержащуюся в файле JSON)
Теперь. Следующим шагом будет убедиться, что ваше приложение только вызывает эти ключи одним способом. Опция заключается в использовании файла config/secrets.yml. Вызовите переменную окружения в файле секретов. Затем вы можете использовать драгоценный камень dotenv в разработке, чтобы у вас был .env-файл в корне вашего приложения, где вы размещаете все ваши env-вары (но НЕ проверяйте файл .env)
Создайте файл, если он не существует config/secrets.yml
и внутри него добавить:
production:
google_secret: ENV['GOOGLE_SECRET']
development:
google_secret: ENV['GOOGLE_SECRET']
(очевидно, опять же, убедитесь, что имя является то, что вы выбрали)
Следующих добавить dotenv в свою драгоценном камне файл и запустить пачку
gem 'dotenv-rails', :groups => [:development, :test]
Создайте новый файл с именем .env в корне приложения. И добавьте вашу переменную напрямую, включая как имя ключа, так и значение.
GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF
Вы можете добавить столько переменных env, сколько вам нужно.
Теперь отредактируйте файл .gitignore и добавьте к нему файл .env, чтобы убедиться, что вы случайно не проверяете свою личную информацию.
Наконец, в любом месте, которое вам необходимо использовать переменную окружения, чтобы вызвать его из секретов, как так:
Rails.application.secrets.google_secret
Я знаю, кажется, как много шагов, но это будет гарантировать, что вы dev соответствует вашему prod, не делая в вашем коде много операторов if Rails.env.development?
.
Я попытался это сделать. Я установил секрет и id из json-файла, но это не работает. Клиент Google ищет сам файл. – NeyLive
, который клиент Google? – trh
Google API Client gem [ссылка Docs] (https://developers.google.com/google-apps/calendar/quickstart/ruby) – NeyLive