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

我有问题从facebook获取生日信息到我的应用程序。 最大的问题是误解了FB的权限页面: http : //developers.facebook.com/docs/authentication/permissions/

这里的生日被描述为user_birthday。 但那不是你如何从响应中获取它。 我找到了一个非常简单的解决方案。

如果您有类似的方法,从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中的权限 – >否则您将只收到nil。