web-dev-qa-db-fra.com

API Facebook Graph - Comment récupérer les photos de différentes tailles d'un album?

D'accord, laissez-moi d'abord vous dire que je n'ai aucun problème à obtenir les albums photo d'un utilisateur et à parcourir la sortie pour afficher toutes les photos dans la taille que je souhaite.

Cependant, si je veux appeler une photo comme:

<img src="https://graph.facebook.com/<?=$this->session->page->photo_id?>/picture?access_token=<?=$this->session->member->facebook_access_token?>" />

Je ne sais pas comment lui dire la taille que je veux qu'il montre.

Dans cet exemple de code de Facebook, vous verrez que le lactosérum récupérant l'album chaque photo dans le tableau revient avec les différentes tailles dans cet exemple de tableau. Je pourrais simplement enregistrer l'URL de la vignette à partir de cela, mais je ne veux pas la stocker, juste la récupérer en cas de besoin.

{
   "id": "10150146071831729",
   "from": {
      "name": "Facebook",
      "category": "Product/service",
      "id": "20531316728"
   },
   "picture": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg",
   "source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg",
   "height": 483,
   "width": 720,
   "images": [
      {
         "height": 483,
         "width": 720,
         "source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg"
      },
      {
         "height": 120,
         "width": 180,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_a.jpg"
      },
      {
         "height": 87,
         "width": 130,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg"
      },
      {
         "height": 50,
         "width": 75,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_t.jpg"
      }
   ],
   ....... continued...
}

Il doit y avoir un moyen de récupérer ces différentes tailles.

Merci.

33
Tomas

Facebook fournit une option de type pour le champ d'image, par exemple, vous pouvez spécifier quelque chose comme:

<img src="https://graph.facebook.com/xxx/picture?access_token=yyy&type=normal />

où le paramètre type peut être l'un de carré, petit, normal, ou grand pour les images de profil ou miniature, normal, album pour les images d'album.

Source: http://developers.facebook.com/docs/reference/api/user/ (sous la section Connexions)

Modifier: Ajout de différentes options pour les images d'album

51
cyang

Je pensais partager une petite astuce pour obtenir des tailles d'image plus grandes à partir de l'API Graph. Facebook comme une petite convention avec des URL d'images ce n'est pas très évident. Par exemple, prenez l'URL suivante:

https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_s.jpg

Remarquez le _s.jpg à la fin? Cela détermine la taille de l'image. Vous pouvez changer cela en _o.jpg pour obtenir la version "originale" en taille réelle. En d'autres termes, mettez à jour l'URL de l'image pour:

https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_o.jpg

Chaque image Facebook a un _o.jpg version. Dans le pire des cas, vous obtenez quelque chose de la même taille que la vignette. Si c'est le cas, vous n'êtes pas mieux lotis qu'avant.

7
Wilhelm Murdoch

ici src_big et src sont une source d'url d'image de taille différente

    function get_photos_by_album_id($album_id){

 if($album_id)
     $fql            =   'SELECT pid,src_big,owner,link,position,created,caption,src      FROM photo WHERE aid="'.$album_id.'" ORDER BY created DESC LIMIT 0,6';

            $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );
        $fqlResult   =   $this->facebook->api($param);
    return $fqlResult;

 }
0
Hasu Like