Facebook からアプリに誕生日情報を取得する際に問題が発生しました。最大の問題は、FB の許可ページを誤解していたことです: http://developers.facebook.com/docs/authentication/permissions/
ここでは、誕生日は user_birthday として記述されています。しかし、それは応答からそれを取得する方法ではありません。非常に簡単な解決策を見つけました。
Facebook からアプリに誕生日情報を取得する際に問題が発生しました。最大の問題は、FB の許可ページを誤解していたことです: http://developers.facebook.com/docs/authentication/permissions/
ここでは、誕生日は user_birthday として記述されています。しかし、それは応答からそれを取得する方法ではありません。非常に簡単な解決策を見つけました。
次のような方法があれば、facebook から誕生日を取得するのは簡単です。
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 ではなく、単なる誕生日です。また、devise.rb でパーミッションとして user_birthday を設定していることを確認してください -> そうしないと、nil しか受け取りません。