Rails: no se pudo autenticar en Facebook porque "credenciales no válidas"

He integrado omniauth-facebook utilizandohttps://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview. Pero me estoy equivocando de:

Could not authenticate you from Facebook because "Invalid credentials".

Y en los registros, obteniendo esto:

Authentication failure! invalid_credentials: OAuth2::Error, : {"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}

Tengo el dispositivo instalado. Cuando hago clic en el enlace de inicio de sesión de Facebook, vuelve al dispositivo "www.mealnut.com/user/sign_in#="y da el error anterior. Comprobé la solución para" Credenciales no válidas "enhttps://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview y como se menciona allí, mi aplicación es el conjunto de encabezado para Tipo de aplicación = Web. No entiendo por qué no está funcionando.

También mi aplicación está pendiente de revisión de facebook. Pero no creo que esté relacionado con este error. Las siguientes son las cosas que hice para omniauth-facebook:

Gemfile contiene:

gem "omniauth", "~> 1.1.4"
gem 'omniauth-facebook', '1.4.1'

En el modelo de usuario, añadido:

devise :omniauthable, :omniauth_providers => [:facebook]
attr_accessible :provider, :uid

  def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
    user = User.where(:provider => auth.provider, :uid => auth.uid).first
    unless user
    user = User.create(name:auth.extra.raw_info.name,
                       provider:auth.provider,
                       uid:auth.uid,
                       email:auth.info.email,
                       password:Devise.friendly_token[0,20]
                      )
  end
user
end

devise.rb

require "omniauth-facebook"
config.omniauth :facebook, "APP_ID", "APP_SECRET", :scope => "offline_access, email" 

omniauth.rb:

OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
 provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], {:provider_ignores_state => true}
end

route.rb:

devise_for: user,: controllers => {: omniauth_callbacks => "omniauth_callbacks"}

Controlador Omniauth:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    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

¿Alguien puede ayudar en esto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta