Est-il possible d'obtenir la photo de profil en taille réelle en utilisant une api de Facebook?
http://graph.facebook.com/ {ID}/picture? type = large est trop petit.
Merci :)
Je pense utiliser la méthode la plus simple pour obtenir la photo de profil complète. Vous pouvez obtenir une photo de profil complète ou définir vous-même la dimension de la photo de profil:
$facebook->api(me?fields=picture.width(800).height(800))
Vous pouvez définir width
et height
selon vos besoins. Bien que Facebook ne renvoie pas la taille exacte demandée, il renvoie l'image de dimension la plus proche disponible avec eux.
Définissez la largeur ou la hauteur sur un nombre arbitrairement grand:
https://graph.facebook.com/username_or_id/picture?width=9999
Si la largeur et la hauteur sont identiques, la photo est rognée en carré.
trouvé un moyen:
$albums = $facebook->api('/' . $user_id . '/albums');
foreach($albums['data'] as $album){
if ($album['name'] == "Profile Pictures"){
$photos = $facebook->api('/' . $album['id'] . '/photos');
$profile_pic = $photos['data'][0]['source'];
break;
}
}
Comme indiqué ci-dessus, il apparaît que la photo de couverture de l'album de profil est une image de profil haute résolution. Je voudrais vérifier le type d'album de "profil" plutôt que le nom, car le nom peut ne pas être cohérent d'une langue à l'autre, mais le type devrait l'être.
Pour réduire le nombre de requêtes/d’analyses, vous pouvez utiliser ce fql: "select cover_object_id de l’album où type = 'profile' et owner = user_id"
Et ensuite, vous pouvez construire l'URL de l'image avec: "https://graph.facebook.com/" + cover_object_id + "/ picture & type = normal & access_token =" + access_token
On dirait qu'il n'y a pas de "gros" type pour cette image, mais le "normal" est toujours assez grand.
Comme indiqué ci-dessus, cette photo peut être moins accessible que la photo de profil publique. Vous devez disposer de l'autorisation user_photos ou friend_photos pour y accéder.
Avec Javascript, vous pouvez obtenir des images de profil en taille réelle comme celle-ci.
passez votre accessToken
à la fonction getface()
de votre FB.init
appel
function getface(accessToken){
FB.api('/me/friends', function (response) {
for (id in response.data) {
var homie=response.data[id].id
FB.api(homie+'/albums?access_token='+accessToken, function (aresponse) {
for (album in aresponse.data) {
if (aresponse.data[album].name == "Profile Pictures") {
FB.api(aresponse.data[album].id + "/photos", function(aresponse) {
console.log(aresponse.data[0].images[0].source);
});
}
}
});
}
});
}
Vous pouvez utiliser des outils de développement tels que firebug dans firefox. Faites un clic droit sur l'image et inspectez l'élément avec Firebug.
Vous obtiendrez l'URL d'où Facebook récupère l'image. Vous y trouverez des URL comme celle-ci
J'ai mis délibérément "x" dans le lien pour des raisons de confidentialité.
Pour voir l'image en pleine résolution, ouvrez un nouvel onglet et ouvrez l'URL suivante:
http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc6/ "297962_1190xxxxx203889_104xxxxx723_n.jpg"
Comme vous pouvez le constater, j'ai mis le nom exact de l'image après le '/'
Supprimez les guillemets et ouvrez le lien. Vous obtiendrez l'image en taille réelle.