2012-10-02 77 views
0

我在我的應用程序中使用omniauth-facebook,我不太確定,但我想我遇到了路由問題,因爲它沒有達到我重定向的方法。在omniauth的facebook回調問題

MyApp::Application.routes.draw do 
match '/auth/facebook/callback' => 'user#create' 
resources :users 

     require 'omniauth' 
    class UserController < ApplicationController 

     def create 
     if User.exists?(:condition => ["email=?",auth_hash["info"]["email"]]) 
      self.current_user = User.find(:all,:condition => ["email=?",auth_hash["info"]["email"]]) 
     else 
      self.current_user = User.new(:email => auth_hash["info"]["email"]) 
     redirect_to 'deals#generate_ticket' 
     end 
     end 

def auth_hash 
    request.env['omniauth.auth'] 
    end 


Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, 'XXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXX', 
     :scope => 'email' 
    end 

也許我錯過了路線中的某些東西,或許我沒有正確安裝寶石。我將竭誠爲你提供幫助。謝謝!

回答

1

您的代碼看起來不錯,但:你有沒有添加到您的Gemfile以下?:

gem 'omniauth' 
gem 'omniauth-facebook' 

而且使用的是:需要「omniauth」,也許應該是「omniauth Facebook的」。但我建議你將寶石添加到你的gemfile而不是使用require。

Regards .. 祝你好運。

+0

感謝您的回答,但我已經嘗試過了,而且我仍處於相同的情況。當它啓動callbitack階段時,會發生錯誤:TypeError 無法將路徑名轉換爲字符串。 我不知道可能是什麼原因的錯誤,任何想法? – user1714597