Я создаю действительно простое приложение Rails с одной конкретной целью: добавить событие Календаря в учетную запись Календаря Google.
Я следую Руководству по Ruby из Google Calendar API .
Мне удалось запустить предоставленный тестовый код (только Ruby, без фреймворка), но мне трудно получить доступ к учетным данным из проекта Rails, и я не уверен в правильном («идиоматическом»?) Способе сделать это, и организовать проект.
Часть процесса использует OAuth 2.0, поскольку для этой цели требуется доступ к личным данным пользователя Google (как для чтения, так и для записи), я следую Инструкции по использованию OAuth 2.0 для веб-служб.
Прямо сейчас у меня есть несколько разных вопросов относительно лучших практик и / или правильного способа организации кода:
Google предоставляет client_secret.json, у которого есть учетные данные для доступа к приложению. Где мне его хранить? Должен ли я хранить его в файле .env в среде разработки и (в моем случае) в ENV VARS Heroku в производственной среде?
Я попытался сохранить файл client_secret.json в корневой папке проекта (тот же путь, что и Gemfile), добавил его в .gitignore, но я не смог
require "#{Rails.root}/client_secret.json"
:/Users/jsoifer/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require': No such file to load -- /Users/jsoifer/Developer/Tiny-Things/tiny-booking/client_secret.json (LoadError)
Я создал папку
services/
, чтобы поместить в нее код, связанный с Календарем Google, но я не был уверен, стоит ли мне помещать ее в контроллер. Как мне это организовать?
Важное замечание: я не использую никакие другие методы аутентификации / авторизации, такие как Devise или другие, и не планирую делать это прямо сейчас. Я просто хочу получить токен авторизации Google и создать событие календаря.