我有一个应用程序,用户使用Facebook帐户登录,保存ID,名称和电子邮件 . 我正在使用https://github.com/jaredhanson/passport-facebook
UserSchema.statics.findOrCreateFaceBookUser = function(profile, done) {
var User = this;
User.findOne({
'email': profile.emails[0].value
}, function(err, user) {
if (err) {
throw err;
}
if (user) {
user.facebook = {
id: profile.id,
email: profile.emails[0].value,
name: profile.displayName
};
user.save(function(err) {
if (err) {
return next(err);
} else {
// done(null, user);
}
});
done(null, user);
} else {
User.findOne({
'facebook.id': profile.id
}, function(err, user) {
if (err) {
throw err;
}
//if (err) return done(err);
if (user) {
done(null, user);
} else {
User.create({
firstName:profile.name.givenName,
lastName:profile.name.familyName,
email: profile.emails[0].value,
gender:profile.gender,
image:"http://graph.facebook.com/"+profile.id+"/picture?type=normal",
facebook: {
id: profile.id,
email: profile.emails[0].value,
name: profile.displayName
}
}, function(err, user) {
if (err) {
throw err;
}
done(null, user);
});
}
});
}
});
问题是我需要获取也在使用该应用程序的Facebook朋友,但facebook图表返回的“id”与我在应用程序中持久存在的不一致 .
https://graph.facebook.com/me/friends?fields=id,name&access_token=xpto
收到护照的“profile.id” - facebook与facebook图表字段“id”不同