私はルビー環境が初めてです。
Ruby アプリで、omniauth を使用してユーザーを認証しています。ログインしているユーザーの facebook トークンを保存できます。問題は、このトークン情報を他のコントローラーにある koala にパラメーターとして渡したいということですか?
どうやってするの?親切に助けてください。
私のオムニオースコントローラー:
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
...
end
ユーザー.rb
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
token = access_token.credentials.token //i want to pass this to invite controller
cookies[:myKey] = token
if user = self.where(:email => data.email).first
if(!user.facebook_id)
if(user.sign_in_count != 0)
user.facebook_id = data.id
user.token = access_token
user.save
else
user.destroy
user = User.new(:name=>(data.name).split(" ")[0], :email => data.email, :password => Devise.friendly_token[0,20], :provider => "facebook", :facebook_id => data.id)
user.skip_confirmation!
user.save!
end
end
user
else # Create a user with a stub password.
user = User.new(:name=>(data.name).split(" ")[0], :email => data.email, :password => Devise.friendly_token[0,20], :provider => "facebook", :facebook_id => data.id)
user.skip_confirmation!
user.save!
user
end
end
MY INVITE CONTROLLER (koala gem を使用して Facebook のユーザー データを取得しようとしています)
class InviteController < ApplicationController
def invite
fb ||= Koala::Facebook::API.new(cookies[:myKey])
@friends = fb.get_connections("me", "friends")
render json: @friends
end
end