2015-07-24 17 views
5

facebook üzerinden giriş için bir web sitesi için omniauth kurmaya çalışıyorum. Sorun facebook 'bilgi' alanını göndermiyor.Omniauth facebook - Auth bilgi alanları

Farklı ortamlar için 2 adet facebook uygulaması hazırladım.

bir uygulama için tepki ben kod ikisi için de aynı olduğu için bir uygulama düzeyinde bir ayardır olmadığını merak

#<OmniAuth::AuthHash credentials=#<OmniAuth::AuthHash expires=true expires_at=14 
42912896 token="CAAPK1ZAgrDtEBAKKvcj4jGu6iaIxYYJV7LZCJ6MZCELZCgNyowkqPeB5kHBsVw4 
ZBKoZCv4DD6my4s8qhO1hJyEFzcb1IpKt03ydzWORZCR3PCf1bw6A9jRudmcJn1N37WgqckmuKUj4k1y 
qb3fcRpNPxAxx0asXJlaUJTcVR5wi0sRIOc9l3yFm6XyuMA464MBz5vt9AvNcVB9DAGm5kHr"> extra 
=#<OmniAuth::AuthHash raw_info=#<OmniAuth::AuthHash email="[email protected]" 
first_name="xxxx" gender="male" id="xxxxx" last_name="xxxx" link="h 
ttps://www.facebook.com/app_scoped_user_id/xxxx/" locale="en_US" na 
me="xxxx" timezone=10 updated_time="2015-06-06T03:35:33+0000" verified=tru 
e>> info=#<OmniAuth::AuthHash::InfoHash email="xxxxxxx" first_name=" 
xx" image="http://graph.facebook.com/xxx/picture" last_name="xxxxx" name="xxxxx" urls=#<OmniAuth::AuthHash Facebook="https://www.facebook.c 
om/app_scoped_user_id/xxxxx/"> verified=true> provider="facebook" ui 
d="xxxxxxxxxxxxxxxx"> 

alanları ben yanıt almak geliştirme env olarak

#<OmniAuth::AuthHash credentials=#<OmniAuth::AuthHash expires=true expires_at=14 
42913734 token="CAAU6NSaozowBANJoDeZCakDuUZAiIZBGQ5cmFYRTwQwo7SK2JK7uhcRK7WIadpp 
zjKfict9pMASS2k9XJZBTgnI8WJvJA42er9Xj8nuoeLjbEQo8TKB7b5hVlsOwRs5kcPpOPwyUTUc0ekF 
uu2w4ubNZBMXZBw5xjGkQwZBZA46fATGOvDXJSrWOOAiQteWnkSO9JkeZC2SfmZCQqcSR0zdV52"> ex 
tra=#<OmniAuth::AuthHash raw_info=#<OmniAuth::AuthHash id="xxxxxxxxxx" na 
me="xxxxxxx">> info=#<OmniAuth::AuthHash::InfoHash image="http://graph.facebo 
ok.com/xxxxxxxxxxx/picture" name="xxxx"> provider="facebook" uid="xxxxxxxx"> 

sahiptir . Uygulama tarafında sadece fark API v2.3 ve diğeri ise 2.4

cevap

8

V2.3 ve v2.4'ü kullandığınızda fark vardır. senin config/initializers/devise.rb dosyasında

ya da API anahtarı koyduk gidersen git, scope yanında info_fields eklemek zorunda,

örnek

config.omniauth :facebook, APP["facebook_id"], APP["facebook_secret"], 
    :scope => 'email,public_profile', info_fields: 'email,name' 
+0

Evet aynen öyledir sadece sürüm uyuşmazlığı olan konu? çünkü info_fields'ı sağlayarak düzeltmeyi başardım, o zaman neden diğer uygulamanın buna ihtiyacı olmadığını merak ettim. Teşekkürler – sethi

+1

@sethi Açıkça FB changelogs https://developers.facebook.com/docs/apps/changelog#v2_4 belirtilen v2.4 ile belirtiniz ** her ** alan istediğiniz grafik API'den döndürmek zorunda . Doğrulanmış hesap bayrağını almak için – Tobi

+3

numaralı telefon numarasını ekledim: info_fields: 'email, name, verified' – peterept