web-dev-qa-db-fra.com

Obtenir une photo de profil en taille réelle

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 :)

49
Richard

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.

85
Smita

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é.

122
Lri

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;
    }
}
6
Richard

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.

4
David Kinghorn

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); 
              });                  
            }
          }   
        });
    }
  });
}
2
Kristian

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

http://profile.ak.fbcdn.net/hprofile-ak-snc7/c160.2.762.762/s160x160/297962_1190xxxx203889_104xxxxx723_n.jpg

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.

2
nikoo28