facebook-graph-api - 来自 devise+omniauth-facebook 身份验证的访问 token ,用于在 fb-graph 中使用

标签 facebook-graph-api ruby-on-rails-3.1 devise omniauth fb-graph

根据本教程,我在 Rails 3 应用程序中使用了 devise 和 omniauth-facebook 进行 Facebook 身份验证:Adding Facebook auth to Rails 3.1 app ,而且效果很好!

但现在我想在我的应用程序中完全集成 Facebook,我可以通过它访问用户的照片、 friend 等,为此我正在考虑使用 fb_graph。 fb_graph 需要一个 token ,我想知道如何编辑我的用户模型以保存 token 并在 fb_graph 中使用它。任何有关此事的帮助将不胜感激。

这就是我的 User 模型现在的样子:

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

最佳答案

你可以这样做:

User.create!(:email => data.email, :password => Devise.friendly_token[0,20], :authentication_token => access_token.credentials.token)

您还需要将 :authentication_token 或您命名的任何内容添加到 attr_accessible

关于facebook-graph-api - 来自 devise+omniauth-facebook 身份验证的访问 token ,用于在 fb-graph 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060738/

相关文章:

facebook - 我应该使用 Facebook Graph API 的哪一部分来发布具有自定义操作的内容?

Facebook graph-api 获取链接统计信息

php - 使用 Graph API 从公共(public) Facebook 页面获取墙提要 - 真的这么复杂吗?

ruby-on-rails - 未知操作 : The action 'create' could not be found for RegistrationsController?

ruby-on-rails - 返回最近日期的 Rails 辅助函数

ios - 从 Facebook 的开放图表中获取 Facebook 页面的见解/page_fans

ruby-on-rails - 使用正则表达式 ruby 验证电话号码

ruby-on-rails-3 - Rails 3覆盖Devise Mailer

ruby-on-rails - Rails/Devise - 通过 json 请求创建新用户

ruby-on-rails - rails 与设计 : How can I trigger other events when user registers?