使用 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'] }));