0

私はルビー環境が初めてです。

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
4

1 に答える 1

0

今、トークンをデータベースに保存しています。今はうまくいっています!皆さんありがとう。

于 2013-07-16T07:08:31.427 に答える