我正在使用passport-facebook for OAuth并从facebook获取用户信息。但我得到的只是一些基本信息(即名字,姓氏)。我想要像userEmail和friendList这样的信息。
我目前的Facebook策略是 -
passport.use(new FacebookStrategy({
clientID: configAuth.facebookAuth.appID,
clientSecret: configAuth.facebookAuth.appSecret,
callbackURL: configAuth.facebookAuth.callbackUrl
},
function(accessToken, refreshToken, profile, done) {
process.nextTick(function() {
User.findOne({'facebook.id': profile.id}, function(err, user) {
if(err)
return done(err);
if(user)
return done(null, user);
else {
var newUser = new User;
console.log(profile);
newUser.facebook.id = profile.id;
newUser.facebook.token = accessToken;
newUser.facebook.name = profile. displayName;
newUser.save(function(err) {
if(err)
throw err;
return done(null, newUser);
})
}
})
})
}
));
有人能告诉我如何获得用户的电子邮件或朋友列表。 在此先感谢!!
答案 0 :(得分:1)
如果您需要电子邮件和user_friends,则必须在请求facebook-auth时将其添加到范围。我想添加以下代码可以帮助你:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email,user_friends'] }));