我正在使用rails 3.2.11和随处可见的gem来验证用户的Facebook帐户。
Gemfile
gem 'omniauth-facebook', '1.4.0'. /config/initializers/omniauth.rb
require 'facebook'
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, "#{Facebook::APP_ID.to_s}", "#{Facebook::SECRET.to_s}" ,{:scope => "email, offline_access, manage_pages"}
endroutes.rb
match "/auth/:provider/callback" => "public_new_pages#auth_callback", :as => :callback
match "/auth/failure" => "public_new_pages#failure", :as => :failure我想访问相册的图片使用Facebook图形API的大品牌facebook网页。我不可能一直都这样。它适用于一些Facebook页面。无法找到正确的解决方案,所以我收到了如下错误,我的页面崩溃。
In browser I see Internal server error 500. and in console I see the error
below when I tried to create a big site called "BMW"
Started GET "/auth/facebook/callback" for 66.249.74.126 at 2013-03-17 01:10:45
**OmniAuth::Strategies::Facebook::NoAuthorizationCodeError
(must pass either a `code` parameter or a signed request**
(via `signed_request` parameter or a `fbsr_XXX` cookie)):
omniauth-facebook (1.4.0) lib/omniauth/strategies/facebook.rb:177:in
`with_authorization_code!'有解决办法吗?
谢谢!
发布于 2015-10-17 09:18:45
我不认为根url对于回调是必要的--您可以使用route.rb重定向到任何url,我得到了相同的错误,我发现这是由于我在身份验证范围中使用的不推荐的权限名称造成的,例如,在出现错误时,我的提供者看起来像
provider :facebook, '2947293729hwehrk', '036e67ce6345cf9',
:scope => 'email,user_birthday,read_stream'但是当我删除read_stream时,错误消失了:)
注意:我确定要回拨url,因为我自己使用以下配置
在facebook控制台中,我的URL看起来像
http://localhost:3000/我的回调路线如下
get 'auth/:provider/callback', to: 'sessions#create'而且效果很好:)
发布于 2013-03-17 08:54:38
尝试将回调URL更改为站点的根目录。
这个问题在无所不在-facebook上谈到了完全相同的错误。
发布于 2017-10-16 22:23:36
据我所知,FB不再允许使用localhost:3000作为应用程序域或站点URL。您必须创建一个“新”的本地主机,基本上,将您的本地主机伪装为一个可接受的URL (即http://my.computer.com:3000)。有关如何为Mac执行此操作的指导可以在这里找到:https://www.imore.com/how-edit-your-macs-hosts-file-and-why-you-would-want。这个新的本地主机URL需要在FB应用程序设置中的三个位置-在'App‘字段中的设置,在设置页面底部的'Site’字段中,以及在FB登录产品页面上的‘有效OAuth重定向URI’字段中。此外,如果使用rails 5.1+,请不要忘记向Rails应用程序添加jquery。
https://stackoverflow.com/questions/15458915
复制相似问题