将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。
- Omniauth-Facebook回调不会在Rails可安装引擎中初始化
- Unicorn和omniauth-facebook – 未初始化的恒定OmniAuth
- 修复Rails oauth facebook x-frame-options sameorigin错误
- Omniauth-facebook哈希没有显示Facebook’用户名’字段,使用rails 3
- 获取(omniauth-facebook)和(omniauth-twitter)工作
- 从Facebook重定向url中删除“#_ = _”
- 使用OpenID,Twitter或Facebook进行Rails 3身份validation
- Omniauth + Facebook失去了会话
- Devise – Omniauth – 如果用户通过Facebook登录,则隐藏密码字段