2017-07-09 7 views
0

私はすべてを試しましたが、他の情報は取得できません。 fb口座から。私は私のFacebookの戦略からのdisplayNameとIDを取得しています:Passport- Facebookの認証で、すべてのFacebookアカウントに電子メールやその他の情報が提供されていません。

passport.use(new FacebookStrategy({ 

    clientID  : configAuth.facebookAuth.clientID, 
    clientSecret : configAuth.facebookAuth.clientSecret, 
    callbackURL  : configAuth.facebookAuth.callbackURL, 
    // profileFeilds : ['id','displayName','email'], 
    passReqToCallback : true, 
    profileFeilds : ['id', 'email', 'gender', 'link', 'locale', 'name', 'timezone', 'updated_time', 'verified'], 
}, 
function(req,accessToken, refreshToken, profile, done) { 

    //console.log(profile); 
    console.log(JSON.stringify(profile)); 
    done(null,profile); 

})); 

GET部分:

router.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); 
    router.get('/auth/facebook/callback', 
     passport.authenticate('facebook', { 
     successRedirect : '/', 
     failureRedirect : '/blogs', 
     //scope:['email'] 
     })); 

出力:

{ id: '1233755832057029', 
username: undefined, 
displayName: 'John Maverick', 
name: 
{ familyName: undefined, 
    givenName: undefined, 
    middleName: undefined }, 
gender: undefined, 
profileUrl: undefined, 
provider: 'facebook', 
_raw: '{"name":"John Maverick","id":"1223755832057029"}', 
_json: { name: 'John Maverick', id: '1223755832057029' } } 

答えて

1

変更し、このために、この

router.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); 

router.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email'] })); 

そして、この変更:

profileFields 
あなたの助けのための
+0

おかげで、本当に私の頭を叩いて、それは単にタイプミスだった見ることができませんでした... – kilimal

+0

:これに

profileFeilds 

をナーマインド・ミー・ア・フレンド、それは日々の生活です。 – jesusgn90

関連する問題