web-dev-qa-db-fra.com

Facebook comment obtenir l'URL de la photo en utilisant Graph API?

Il est possible d’obtenir l’URL de l’image réelle d’une image Facebook à l’aide de l’appli Graph ??

Par exemple, pour la photo ci-dessous http://www.facebook.com/photo.php?fbid=357755307655174

l'URL réelle est https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/252428_530045532341_5136_n.jpg

Existe-t-il un moyen graphique pour y parvenir?

13
SatheeshJM

Existe-t-il un moyen graphique pour y parvenir?

Par conséquent, vous devez consulter le champ source de l’objet photo :

la source:

L'image source de la photo - elle peut actuellement avoir une largeur ou une hauteur maximale de 720 pixels, augmentant à 960 pixels le 1er mars 2012.

chaîne représentant une URL valide

Cela vous donnera la taille originale de la photo téléchargée pour des images plus petites, ou redimensionnée au maximum. 960px dans chaque direction.

Pour des tailles encore plus grandes, vous devez vérifier le champ images:

images:

Les 4 différentes représentations mémorisées de la photo 

tableau d'objets contenant les champs hauteur, largeur et source

Cela "promet" de fournir des tailles beaucoup plus grandes (par exemple, 2048 × 1417px) - mais sachez que ces entrées fourniront une image plus petite si l'image originale n'était pas aussi grande que demandé.

9
CBroe

Par défaut, tous les champs d'un nœud ou d'un Edge ne sont pas renvoyés lorsque vous Effectuez une requête. Vous pouvez choisir les champs ou les arêtes à renvoyer Avec le paramètre de requête fields.

C'est pourquoi lorsque vous récupérez une photo, vous ne pouvez obtenir que created_time, name et id.

Le champ source est obsolète dans la dernière API (v2.8). Utilisez images à la place.

Donc, votre requête peut ressembler à ceci:

GET graph.facebook.com/{photo-id}?fields=images

La réponse devrait être comme ceci:

{

"images":[
    {
        "height":358,
        "source":"https://scontent.xx.fbcdn.net/v/t1.0-9/15327427_585435148333529_xxxxxxxxxxxx_n.jpg?oh=xxxxxxxx&oe=xxxxxxxxx",
        "width":518
    },
    {
        "height":320,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p320x320/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxx&oe=xxxx&__gda__=xxxxxxxxxxxx",
        "width":463
    },
    {
        "height":130,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p130x130/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxx&oe=xxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":188
    },
    {
        "height":225,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p75x225/15327427_xxxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxxxxxxxx&oe=xxxxxxxxxxxxxxxxxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":325
    }
],
"id":"585435148333529"

}
13
Hieu

Il semble y avoir un manque de documentation à ce sujet. Cela peut simplement être réalisé de cette façon. Dans cette URL http://www.facebook.com/photo.php?fbid=357755307655174 , extrayez l'id de la photo représentée par fbid. Dans le cas ci-dessus, il s'agit de 357755307655174. Maintenant, faites une requête graphique api, à cet objet https://graph.facebook.com/357755307655174 . Cela renverra un JSON avec tous les rapports d'aspect présents dans leur base de données et leurs URL réelles. Chaque champ de données suivant le format

{
      "height": 1080, 
      "source": "https://scontent-a.xx.fbcdn.net/hphotos-xpf1/t31.0-8/10296099_566697856780203_6555830953677139074_o.jpg", 
      "width": 1980
}

Utilisez l'explorateur graphique pour vérifier à nouveau le format des données JSON renvoyées. La source correspond à ce que vous recherchez.

Demander les pièces jointes sur le terrain, où vous trouverez l'image originale.

&fields=picture.type(large),attachments
2
Teson