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

Mic*_*itz 0 facebook ruby-on-rails devise

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

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

Mic*_*itz 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
Run Code Online (Sandbox Code Playgroud)

这里的关键部分是来自正确数组的strptime,它不是user_birthday,而是生日.还要确保您已将user_birthday设置为devise.rb中的权限 - >否则您将只收到nil.