2016-01-03 5 views
1

Я пытаюсь настроить Devise с помощью omniauth, чтобы позволить пользователям входа в facebook через мое приложение rails. Я прочитал несколько советов/вопросов SO, и они указывают, что у меня нет настройки FACEBOOK_APP_ID в переменной среды на поле, в котором работает приложение rails. Ну, я настраиваю переменную среды в поле производства, из которого приложение работает под этим конкретным пользователем. Я добавил FACEBOOK_APP_ID и переменные окружения FACEBOOK_SECRET в .bashrc, и я разместил приложение в режиме разработки на странице приложений facebook. Я также проверил раздел приложения roles через портал разработчиков приложений на сайте facebook, а моя учетная запись facebook установлена ​​на Administrator, поэтому я немного недоумеваю, почему это не работает. В настоящее время я вижу что-то вроде этого: enter image description hereDevise omniauth facebook Требуется параметр app_id

+0

Вы уверены, что переменная находится в правом .bashrc? Один из пользователей, который фактически запускает экземпляр вашего сервера rails? –

+0

Да, я просто дважды проверял это, и puma работает под пользователем, который развертывает приложение через capistrano, и я повторил «FACEBOOK_APP_ID», и он печатает хэш символов. – Chris

+1

Я помню, что у меня была одна и та же проблема с одним развертыванием capistrano и в конечном итоге использовала драгоценный камень figaro, чтобы отслеживать мои глобальные переменные ... Вероятно, это не тот ответ, который вы ищете, но, возможно, еще один способ сделать это :) –

ответ

0

Просто не используйте переменные среды, давайте предположим, что мое приложение - 121, а секрет - abc.

Тогда мой omniauth.rb будет выглядеть следующим образом:

OmniAuth.config.logger = Rails.logger 
Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, "121", "abc" 
end