使用 passport-facebook 来自 facebook 的特定用户信息
Specific user info from facebook using passport-facebook
我正在使用 passport-facebook 进行 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);
})
}
})
})
}
));
谁能告诉我如何获取用户的电子邮件或好友列表。
提前致谢!!
如果您需要电子邮件和 user_friends,您必须在请求 facebook-auth 时将它们添加到范围中。我想将以下代码添加到你会帮助你:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email,user_friends'] }));
我正在使用 passport-facebook 进行 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);
})
}
})
})
}
));
谁能告诉我如何获取用户的电子邮件或好友列表。 提前致谢!!
如果您需要电子邮件和 user_friends,您必须在请求 facebook-auth 时将它们添加到范围中。我想将以下代码添加到你会帮助你:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email,user_friends'] }));