Ruby on rails 使用OmniAuth的Facebook授权

Ruby on rails 使用OmniAuth的Facebook授权,ruby-on-rails,facebook,ruby-on-rails-3,Ruby On Rails,Facebook,Ruby On Rails 3,现在我正在尝试设置一个Facebook授权系统。但我收到一条错误信息,不知道为什么。你能给我一些建议吗 错误消息: { "error": { "message": "Invalid redirect_uri: \u6307\u5b9a\xxxx\u308c\u305fURL\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u3067\u8a31\u53ef\u3055\u308c

现在我正在尝试设置一个Facebook授权系统。但我收到一条错误信息,不知道为什么。你能给我一些建议吗

错误消息:

{
   "error": {
  "message": "Invalid redirect_uri: \u6307\u5b9a\xxxx\u308c\u305fURL\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u3067\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
  "type": "OAuthException",
  "code": 191
    }
}
我所做的如下

①Gemfile

    gem 'omniauth'
    gem 'omniauth-facebook'
②捆绑安装

③配置 /config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook,"App ID","App Secret"
end
※facebook dev上的网站URL

http://127.0.0.1
④app/views/layout/application.html.erb

⑤config/routes.rb

#OmniAuth
  match "/auth/:provider/callback" => "sessions#callback"
  match "/logout" => "sessions#destroy", :as=>:logout
  match '/auth/failure', to: redirect('/') 
⑥/app/controllers/sessions\u controller.rb

class SessionsController < ApplicationController
  def callback
    raise request.env["omniauth.auth"].to_yaml
  end

end
class sessioncontroller
在facebook dev上提供站点URL作为您的系统IP地址,如
http://192.168.88.9999:3000
和 使用IP地址运行应用程序


希望这能对你有所帮助:)

你必须已经在facebook上创建了你的应用程序页面,去那里编辑你的网站url。如果您在本地服务器上,请使用
http://localhost:3000
如果3000是您的端口号

您需要在facebook开发者的应用程序设置中更改站点URL。我希望它能帮助你

From http://127.0.0.1 to http://localhost

迪巴达特先生,非常感谢你的评论。我把http://“我的ip地址”:3000放在我的facebook开发者上。但它不起作用。你用浏览器上的ip运行应用程序了吗?现在我明白了。我试过了,成功了。非常感谢你!!那么,我现在面临一个新的问题。这是登录后的错误消息。..RuntimeError at/auth/facebook/callback---!ruby/hash:OmniAuth::AuthHash提供程序:facebook uid:'xxxxxxx'信息:!ruby/hash:OmniAuth::AuthHash::InfoHash昵称:Mr/Mis user2675613,感谢您的建议,但是我试了很多次,都失败了。@kunihararamaki您需要使用
http://localhost:3000
而不仅仅是localhost:3000,如果您只使用localhost:3000,那么它会给您提供站点URL必须使用HTTP或HTTPS协议错误,因此请将其与“HTTP”一起使用。再次感谢。我再确认一下。