Ich verwende Rails 4.2.7 mit Omniauth 1.3.1. Wenn sich jemand über Facebook bei meiner App anmeldet, möchte ich seinen Geburtstag aufzeichnen, aber ich kann nicht herausfinden, wie ich ihn von der Facebook-Seite extrahieren kann, wenn ich mein Auth-Objekt erhalte. Ich habe dies in meiner config/initializers/omniauth.rb Datei ...Wie verwende ich omniauth in RoR, um Facebook Geburtstag Informationen zu extrahieren?
Rails.application.config.middleware.use OmniAuth::Builder do
…
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'],
scope: 'public_profile', info_fields: 'id,email,link,birthday,first_name,last_name'
aber sobald mein Rückruf an meine Anwendung zurückgegeben wird ..
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
Der Aufruf stirbt, weil es keinen Geburtstag zu extrahieren ...
def self.from_omniauth(auth)
puts "extra: #{auth.extra}"
bday = Date.strptime(auth.extra.raw_info.birthday,'%m/%d/%Y')
Was in ausgedruckt wird „extra“ ist
extra: #<OmniAuth::AuthHash raw_info=#<OmniAuth::AuthHash first_name=“MyName” id="1777736954079999” last_name=“LastName” link="https://www.facebook.com/app_scoped_user_id/1777736954079999/">>
obwohl ich definitiv einen Geburtstag in meinem Facebook-Profil eingerichtet habe. Was muss ich noch tun, um die Geburtstagsinformationen zu übergeben/extrahieren?
versuchen, 'user_birthday' zu scope –