Токен доступа от devise+omniauth-аутентификации Facebook для использования в fb-graph

Я использовал devise и omniauth-facebook в своем приложении Rails 3 для аутентификации Facebook, основываясь на этом руководстве:Добавление аутентификации Facebook в приложение Rails 3.1 , и это работает отлично!

Но теперь я хочу иметь полную интеграцию с Facebook в своем приложении, с помощью которого я могу получить доступ к фотографиям пользователя, друзьям и т. д., и для этого я думаю использовать fb_graph. Для fb_graph требуется токен, и я хотел знать, как отредактировать мою пользовательскую модель, чтобы сохранить токен и использовать его в fb_graph. Любая помощь по этому вопросу будет высоко оценена.

Вот как сейчас выглядит моя модель пользователя:

class User < ActiveRecord::Base

# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :omniauthable

# Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me

  has_many :photos
  has_many :scrapbooks

  def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
    data = access_token.extra.raw_info
    if user = User.where(:email => data.email).first
      user
    else # Create a user with a stub password.
      User.create!(:email => data.email, :password => Devise.friendly_token[0,20])
    end  
  end

  def self.new_with_session(params, session)
    super.tap do |user|
      if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"]
        user.email = data["email"]
      end
    end
  end
end

7
задан humairatasnim 8 April 2012 в 05:57
поделиться