53 votes

Obtenir une photo de profil en taille réelle

Existe-t-il un moyen d'obtenir la photo de profil en taille réelle à l'aide d'un api facebook ?

http://graph.facebook.com/ {ID}/picture?type=large est beaucoup trop petit.

Merci :)

127voto

Lri Points 8342

Définissez la largeur ou la hauteur à un nombre arbitrairement grand :

https://graph.facebook.com/username_or_id/picture?width=9999

Si la largeur et la hauteur sont égales, la photo est coupée en carré.

87voto

Smita Points 3042

Je pense que j'utilise la méthode la plus simple pour obtenir la photo de profil complète. Vous pouvez obtenir la 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 y height selon vos besoins. Bien que Facebook ne renvoie pas la taille exacte demandée, il renvoie l'image de la dimension la plus proche disponible chez lui.

6voto

Richard Points 2685

A 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;
    }
}

4voto

David Kinghorn Points 111

Comme indiqué ci-dessus, il semble que la photo de couverture de l'album de profil soit une photo de profil en haute résolution. Je vérifierais le type d'album "profil" plutôt que le nom, car le nom peut ne pas être cohérent dans les différentes langues, mais le type devrait l'être.

Pour réduire le nombre de requêtes / parsing, vous pouvez utiliser cette fql : "select cover_object_id from album where type='profile' and 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

Il semble qu'il n'y ait pas de type "grand" pour cette image, mais le type "normal" est encore assez grand.

Comme indiqué ci-dessus, cette photo peut être moins accessible que la photo de profil public. Vous devez disposer de l'autorisation user_photos ou friend_photos pour y accéder.

2voto

Pour Angular :

getUserPicture(userId) {   
FB.api('/' + userId, {fields: 'picture.width(800).height(800)'}, function(response) {
  console.log('getUserPicture',response);
});
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X