Agregue la gema al gemfile (devise ya lo tenia y me funciona perfecto)
Código:
hice la migraciongem 'omniauth-facebook'
Código:
Agregue esta linea a config/initializers/devise.rb le puse el id y secret de mi aplicación en facebookrails g migration AddColumnsToUsers provider uid rake db:migrate
Código:
en el modelo users agregue la opcion de omnniutableconfig.omniauth :facebook, "APP_ID", "APP_SECRET"
Código:
En la vista puse el link para ingresar por FBdevise :omniauthable, :omniauth_providers => [:facebook]
Código:
En las rutas puse esto para los callbacks<%= link_to "Sign in with Facebook", user_omniauth_authorize_path(:facebook) %>
Código:
Cree el controlador app/controllers/users/omniauth_callbacks_controller.rbdevise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
Código:
Y agregue esto a mi modelo Userclass Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def facebook # You need to implement the method below in your model (e.g. app/models/user.rb) @user = User.from_omniauth(request.env["omniauth.auth"]) if @user.persisted? sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format? else session["devise.facebook_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url end end end
Código:
Y me aparece este error:def self.from_omniauth(auth) where(auth.slice(:provider, :uid)).first_or_create do |user| user.email = auth.info.email user.password = Devise.friendly_token[0,20] end end
Código:
Del lado de facebook por lo que veo todo esta bien, no se que me falte hacer o que estoy haciendo mal.Could not authenticate you from Facebook because "Invalid credentials".
Lo tengo montado en heroku en http://hicking.co
Gracias