Rails / Heroku: настройка кода для чтения переменных во время выполнения - PullRequest
0 голосов
/ 02 января 2012

Я сделал сайт, который использует драгоценный камень Twitter Ruby.На локальном хосте я могу заставить гем Twitter работать нормально, но когда я развернул его на Heroku, у меня возникают проблемы при входе через Twitter.

Heroku предоставляет инструкции (с использованием переменных Amazon S3) о добавленииCONSUMER_KEY и CONSUMER SECRET

$ cd myapp
$ heroku config:add S3_KEY=some_key_here S3_SECRET=some_secret_here

Я сделал это.

Затем, когда я иду на тестовый вход, я получаю это в URL.Этот URL-адрес совпадает с тем, когда (на локальном хосте) я забываю добавить CONSUMER_KEY и т. Д., Поэтому я считаю, что неправильно настроил CONSUMER_KEY и CONSUMER_SECRET в Heroku ... enter image description here

Heroku предоставляет дополнительные сведения о настройке файла в config / initalizer для чтения переменных во время выполнения, но я думаю, что проект Github, который я разветвил и затем адаптировал, уже имеет эту настройку https://github.com/sferik/sign-in-with-twitter/blob/master/config/initializers/omniauth.rb, поэтому я не уверен, чтопродолжается.

Set up your code to read the vars at runtime in config/initializers/s3.rb:

AWS::S3::Base.establish_connection!(
  :access_key_id     => ENV['S3_KEY'],
  :secret_access_key => ENV['S3_SECRET']
)

ОБНОВЛЕНИЕ

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

2012-01-02T20:01:43+00:00 app[web.1]: 
2012-01-02T20:01:43+00:00 app[web.1]: Started GET "/auth/twitter?utf8=%E2%9C%93" for 64.46.7.250 at 2012-01-02 20:01:43 +0000
2012-01-02T20:01:44+00:00 app[web.1]: 
2012-01-02T20:01:44+00:00 app[web.1]: OAuth::Unauthorized (401 Unauthorized):
2012-01-02T20:01:44+00:00 app[web.1]: 

1 Ответ

1 голос
/ 03 января 2012

Это может быть одна из двух вещей.

Либо ваши ключи настроены неправильно, либо маршрут, на который возвращается обратный вызов Twitter OAuth, неверен (в том смысле, что он обрабатывается неправильно).

Проще всего проверить конфигурацию Heroku:

heroku config --app your_app_name

Это должно показать CONSUMER_KEY и CONSUMER_SECRET (я предполагаю, что вы используете S3_KEY и S3_SECRET выше как заполнители)

Если эта конфигурация верна, и она все еще не работает, вам нужно разобраться с обработкой запроса, который возвращается к вашему приложению. Кажется, что он обрабатывает / auth / twitter, как и должно быть, но что-то не так в этом шаге.

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