Abrufen von Fotos aus Facebook verwenden-passport-facebook
Ich bin in der Lage, abrufen von basic-Benutzer-Informationen über Pass-facebook, unter den folgenden code und speichern in mongodb:
app.get("/auth/facebook", passport.authenticate("facebook", { scope : ["email", "publish_stream", "user_location", "user_hometown", "user_birthday", "read_friendlists"]}));
app.get("/auth/facebook/callback", passport.authenticate("facebook",{ successRedirect: '/', failureRedirect: '/'}));
var mongoose = require('mongoose'),
FacebookStrategy = require('passport-facebook').Strategy,
Users = mongoose.model('Users');
module.exports = function (passport, config) {
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
Users.findOne({ _id: id }, function (err, user) {
done(err, user);
});
});
passport.use(new FacebookStrategy({
clientID: config.facebook.clientID,
clientSecret: config.facebook.clientSecret,
callbackURL: config.facebook.callbackURL
}, function(accessToken, refreshToken, profile, done) {
Users.findOrCreateFaceBookUser(profile, done);
}));};
Aber ich bin nicht in der Lage zu sehen, das Profil-Bild im "Profil".
In der Dokumentation https://github.com/jaredhanson/passport-facebook sagt zum abrufen von Fotos, die wir brauchen, um passieren die profileFields als unten. Aber, so zu tun, ich bin in der Lage, um zu sehen, die Foto-URL zu verlieren, aber andere Daten enthalten waren, in _json z.B. Profil._json.Lage.name. Wie kann ich abrufen, Fotos mit anderen Benutzer-Informationen intakt?
passport.use(new FacebookStrategy({
//clientID, clientSecret and callbackURL
profileFields: ['id', 'displayName', 'photos', ....]},//verify callback));
Hast du jemals diese Figur ein?
Ja, das Bild kann zugegriffen werden über die graph api mit dem access token wie diese. "graph.facebook.com." + Profil.username + "/Bild" + "?width=200&height=200" + "&access_token=" + accessToken; Es gibt keine Notwendigkeit, verwenden Sie die Profil-Felder.
Ja, das Bild kann zugegriffen werden über die graph api mit dem access token wie diese. "graph.facebook.com." + Profil.username + "/Bild" + "?width=200&height=200" + "&access_token=" + accessToken; Es gibt keine Notwendigkeit, verwenden Sie die Profil-Felder.
InformationsquelleAutor user2897777 | 2013-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du ein größeres Bild (Standard in miksii dem Beispiel oben ist 50px x 50px, die ist ziemlich klein), dann verwenden:
dann
Diese zurück 200px x 200px Profil Bild für diesen Benutzer.
InformationsquelleAutor Tebbers
Neben der Antwort auf Ihre Frage - die Sie nicht haben, um es so zu machen. Wie Sie bereits erwähnt, können Sie definieren die benötigten Attribute für die Facebook-Profil:
Was, als Sie tun können ist, einfach schnappen Sie sich den Wert des angegebenen Attributs. Lassen Sie uns sagen, Sie wollen zu machen, ein Attribut, das diesen Wert:
Dies erwies sich als eine bessere Lösung, da einige Benutzer oder manchmal den Wert von username undefiniert sein kann.
Ich hoffe, Sie finden diese nützlich, auch
Danke.
Es ist verkürzen if - else bedingte Struktur, wo ? bedeutet "in case Profil.Fotos gibt true zurück," und bedeutet: "im Fall Profil.Fotos gibt false zurück". In Bezug auf, dass, wenn es keine Fotos, die wir wollen, um die Standard-Bild für unsere Benutzer (dieses Bild rest in dem angegebenen Pfad img/faces/unknown..jpg).
ooooooh okay, got it! Danke 😀
InformationsquelleAutor miksiii
Ja, das Bild kann zugegriffen werden über die graph api mit dem access token. "graph.facebook.com/"; + - Profil.username + "/Bild" + "?width=200&height=200" + "&access_token=" + accessToken; Es gibt keine Notwendigkeit, verwenden Sie die Profil-Felder.
InformationsquelleAutor user2897777