Как настроить Google Drive API на Heroku? - PullRequest
0 голосов
/ 19 мая 2019

Я начинающий разработчик на Ruby on Rails.

Я создал целевую страницу с формой.Эта форма связана с документом Google Sheets с API Google Drive.У меня не было проблем с настройкой локально.У меня есть файл config.json, и все работает нормально.

Проблема в производстве с Heroku.Я настроил Heroku с помощью файла config.json следующим образом:

heroku config:add CONFIG_JSON='{ 
  "client_id": "xXxxxXXx",
  "client_secret": "xXxxxXXx",
  "scope": [
    "https://www.googleapis.com/auth/drive",
    "https://spreadsheets.google.com/feeds/"
  ],
  "refresh_token": "1/mUqALEa6lGi6ulkWdBTJSFeygauofgN-DhWaat8Crec"
}'

Но, похоже, есть дополнительный шаг, который я должен выполнить, когда я получаю сообщение об ошибке, как показано в журналах Heroku ниже:

2019-05-19T15:16:26.511306+00:00 app[web.1]: I, [2019-05-19T15:16:26.511173 #4]  INFO -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21]   Parameters: {"utf8"=>"✓", "authenticity_token"=>"iURPH06q8l6VrV9KOt9BLchtSB4S09TYKvf0SuQ8ydUnyBFZUwyRwe3R7+sWcpI9rXg1SyS0O1W65wDlDA+cgg==", "email"=>"prevostq@gmail.com", "commit"=>"Je m'inscris"}
2019-05-19T15:16:26.518244+00:00 app[web.1]: bin/rails: No such file or directory - gcloud
2019-05-19T15:16:26.559099+00:00 app[web.1]: 
2019-05-19T15:16:26.559103+00:00 app[web.1]: 1. Open this page:
2019-05-19T15:16:26.559106+00:00 app[web.1]: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=452925651630-egr1f18o96acjjvphpbbd1qlsevkho1d.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://www.googleapis.com/auth/drive%20https://spreadsheets.google.com/feeds/
2019-05-19T15:16:26.559108+00:00 app[web.1]: 
2019-05-19T15:16:26.566902+00:00 app[web.1]: 2. Enter the authorization code shown in the page: I, [2019-05-19T15:16:26.566552 #4]  INFO -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21] Completed 500 Internal Server Error in 55ms
2019-05-19T15:16:26.569268+00:00 app[web.1]: F, [2019-05-19T15:16:26.569184 #4] FATAL -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21]   
2019-05-19T15:16:26.569784+00:00 app[web.1]: F, [2019-05-19T15:16:26.569713 #4] FATAL -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21] NoMethodError (undefined method `chomp' for nil:NilClass):
2019-05-19T15:16:26.569877+00:00 app[web.1]: F, [2019-05-19T15:16:26.569813 #4] FATAL -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21]   
2019-05-19T15:16:26.569981+00:00 app[web.1]: F, [2019-05-19T15:16:26.569910 #4] FATAL -- : [6b76c96c-c2ac-406b-9f5e-b11db7e7fd21] app/controllers/landing_page_controller.rb:5:in `create'

Как у кого есть идеи по настройке Heroku?

Заранее спасибо.Квентин

1 Ответ

0 голосов
/ 21 мая 2019

На мой взгляд, есть два способа добиться этого:

  1. Использовать закрытый ключ в конфигурации heroku var: Для связи с листом / диском api google предоставьте нам ключ как GOOGLE_PRIVATE_KEY, который используется для аутентификации запроса, следовательно, может использоваться в переменных env

    2. Есть еще один метод, в котором мы можем указать файл json в конфигурации, например,

    heroku config: set GOOGLE_SETTING = "$ (cat settings.json)"

Я не использовал этот способ, но вы можете попробовать его, если он работает для вас.

При написании этого ответа мне пришла в голову одна опция - вы можете использовать свой конфиг в файле json

'{ 
  "client_id": "XXX",
  "client_secret": "XXX",
  "scope": [
    "https://www.googleapis.com/auth/drive",
    "https://spreadsheets.google.com/feeds/"
  ],
  "refresh_token": "XXX"
}'

Сохранение всех "XXX" в конфигурации, а не в файле json.

Пожалуйста, попробуйте все возможности и подтвердите, если это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...