2017-01-11 4 views
0

Я пытаюсь интегрировать API календаря Google в свое приложение Rails, поэтому я могу создавать события календаря Google из своего приложения.Где я могу поместить файл ключевого слова API Google .json?

Google предоставил файл client_secret.json. Я могу использовать его локально, но теперь не знаю, как реализовать ключевой файл на heroku.

Может ли кто-нибудь помочь мне с этим?

ответ

1

Это должен быть секрет и ключ (имена и значения).

Для 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?.

+0

Я попытался это сделать. Я установил секрет и id из json-файла, но это не работает. Клиент Google ищет сам файл. – NeyLive

+0

, который клиент Google? – trh

+0

Google API Client gem [ссылка Docs] (https://developers.google.com/google-apps/calendar/quickstart/ruby) – NeyLive

Смежные вопросы