Как настроить omniauth-facebook в уже существующем приложении omniauth и devise rails?

Итак, я следовал инструкциям, указанным здесь http://railscasts.com/episodes/235-devise-and-omniauth-revised и успешно настройте вход и регистрацию с помощью Twitter. Теперь я пытаюсь настроить facebook. С помощью gem 'omniauth-facebook'. После его установки. Затем я добавил в файл /config/initializers/devise.rb

config.omniauth :facebook, ENV["FB_APP_ID"], ENV["FB_SECRET_ID"]

Теперь, когда я пытаюсь войти через facebook. Я получаю ошибку -

ArgumentError in OmniauthCallbacksController#facebook

wrong number of arguments(3 for 2)

Я сомневался, что может появиться ошибка. Но не уверен, как это исправить.

Мой контроллер и пользовательская модель такие же, как упомянуто здесь - http://railscasts.com/episodes/235-devise-and-omniauth-revised

Что мне не хватает?

ОБНОВЛЕНИЕ: я изменил это в файле модели user.rb

вместо alias_method :twitter, :all сделал alias_method :twitter, :facebook :all

Спасибо


person psharma    schedule 12.03.2013    source источник


Ответы (1)


Это сработало для меня:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'FB_APP_ID', 'FB_SECRET_ID'

но я не использовал devise, поэтому просто попробуйте удалить ENV .

Также читайте здесь обо всех вариантах и ​​некоторых сбоях, с которыми вы можете столкнуться:

https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview

person Zippie    schedule 12.03.2013
comment
Я получил это с ENV. Я не выполнял это через метод config.middleware и сборку Omnath, как вы сделали выше. Получил это работает сейчас. Благодарность - person psharma; 12.03.2013
comment
да, но я все еще не понимаю, как мне справиться с обоими методами (для твиттера и фейсбука вместе)? - person psharma; 12.03.2013
comment
потому что теперь я получаю No route matches [GET] "/users/auth/facebook/callback" - person psharma; 12.03.2013
comment
Ой, ладно, извините, я думал, что вы все прикрыли. поищите эту проблему здесь: stackoverflow .com/questions/6339532/ - person Zippie; 12.03.2013
comment
Я не делал этого с devise, поэтому я не знаю точных отличий от создания с нуля. - person Zippie; 12.03.2013
comment
я на самом деле понял это. Мне просто нужно было сделать require "omniauth-facebook", а затем все остальное было выяснено. Спасибо - person psharma; 12.03.2013