将facebook生日信息添加到rails / devise / omniauth中的某个模型

时间:2012-09-19 18:39:09

标签: ruby-on-rails facebook devise

我在将facebook上的生日信息导入我的应用时遇到了问题。 最大的问题是误解了FB的权限页面: http://developers.facebook.com/docs/authentication/permissions/

这里的生日被描述为user_birthday。但那不是你怎么能从反应中抓住它。我找到了一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:5)

如果您有像

这样的方法,那么从facebok获取生日很容易
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
user = User.where(:provider => auth.provider, :uid => auth.uid).first
unless user
  user = User.create!(
                       provider:auth.provider,
                       uid:auth.uid,
                       email:auth.info.email,

                       password:Devise.friendly_token[0,20]
                       )
    @player = Player.new
    @player = Date.strptime(auth.extra.raw_info.birthday,'%m/%d/%Y')
    @player.save
end
user
end

这里的关键部分是来自右侧阵列的strptime,它不是user_birthday,而是生日。还要确保您已将user_birthday设置为devise.rb中的权限 - >否则你只会收到零。