2

我正在使用rails 3.2.11和omniauth gem通過他們的Facebook帳戶驗證用戶身份。OmniAuth NoAuthorizationCodeError

的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"} 
end 

的routes.rb

match "/auth/:provider/callback" => "public_new_pages#auth_callback", :as => :callback 
match "/auth/failure" => "public_new_pages#failure", :as => :failure 

I W應該使用面向大品牌臉書頁面的Facebook圖表API訪問相冊的圖片。我無法獲得所有的時間。它的作品爲一些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!' 

任何解決方案?

謝謝!

+0

http://stackoverflow.com/questions/12370056/omniauth-strategies-facebook-noauthorizationcodeerror-must-pass-either-a-code – ajbraus 2014-01-19 15:48:42

回答

0

嘗試將您的回調網址更改爲您網站的根目錄。

This issue在omniauth-facebook會談到完全相同的錯誤。

1

我不認爲root url是回調所必需的,你可以使用route.rb重定向到任何url,我得到了同樣的錯誤,我發現這是由於我在我的身份驗證中使用的權限的過時名稱例如,在我的供應商看上去就像

provider :facebook, '2947293729hwehrk', '036e67ce6345cf9', 
    :scope => 'email,user_birthday,read_stream' 

錯誤的時間範圍但是,當我刪除read_stream,錯誤消失了:)

注:我肯定回呼網址,因爲我我自己使用以下配置

在Facebook的控制檯,我的URL看起來像

http://localhost:3000/ 

我的回調航線是繼

get 'auth/:provider/callback', to: 'sessions#create' 

而且它的正常工作:)

0

從我可以告訴,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應用設置的3個位置 - 在「應用域名」字段中的設置中,在設置頁面底部的「網站網址」字段中,以及在「有效的OAuth重定向URI」字段中FB登錄產品頁面。另外,如果您使用的是Rails 5.1+,請不要忘記將jquery添加到您的Rails應用程序中。