Je travaille sur un CMS qui récupère l'image de profil d'un utilisateur à partir de son profil Facebook. URL (c'est-à-dire, http://facebook.com/users_unique_url ). Comment puis-je réaliser cela ? Existe-t-il un appel de l'API Faceboook qui permet de récupérer l'URL de l'image de profil d'un utilisateur sans que ce dernier ait à Autoriser l'application ?
Réponses
Trop de publicités?Il suffit de récupérer les données par le biais de cette URL :
http://graph.facebook.com/sarfraz.anees/picture
Remplacer sarfraz.anees
(mon nom) avec le nom de l'utilisateur dont vous voulez obtenir la photo.
Vous pouvez utiliser la fonction file_get_contents
pour lire cette URL et traiter les données récupérées.
Ressource :
http://developers.facebook.com/docs/api
Note : Sur php.ini
vous devez vous assurer que le OpenSSL est activé pour utiliser l'extension file_get_contents
de PHP pour lire cette URL.
Pour montrer :
50x50 pixels
<img src="https://graph.facebook.com/<?= $fid ?>/picture">
200 pixels de largeur
<img src="https://graph.facebook.com/<?= $fid ?>/picture?type=large">
Pour économiser
$img = file_get_contents('https://graph.facebook.com/'.$fid.'/picture?type=large');
$file = dirname(__file__).'/avatar/'.$fid.'.jpg';
file_put_contents($file, $img);
Où $fid est votre identifiant d'utilisateur (ou pseudo) sur Facebook..
UPDATE :
Depuis fin août 2012, l'API a été mise à jour pour vous permettre de récupérer les photos de profil des utilisateurs en différentes tailles. Ajoutez les champs facultatifs de largeur et de hauteur comme paramètres d'URL :
https://graph.facebook.com/USER_ID/picture?width=WIDTH&height=HEIGHT
donde WIDTH
y HEIGHT
sont les valeurs des dimensions demandées.
Vous obtiendrez ainsi une photo de profil d'une taille minimale de 1 000 pixels. WIDTH
x HEIGHT
tout en essayant de préserver le rapport d'aspect. Par exemple,
https://graph.facebook.com/redbull/picture?width=140&height=110
renvoie à
{
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/c0.19.180.142/s148x148/2624_134501175351_4831452_a.jpg",
"width": 148,
"height": 117,
"is_silhouette": false
}
}
FIN UPDATE
Pour obtenir la photo de profil d'un utilisateur, appelez
https://graph.facebook.com/USER_ID/picture
donde USER_ID
peut être le numéro d'identification de l'utilisateur ou le nom de l'utilisateur.
Pour obtenir une photo de profil d'utilisateur d'une taille spécifique, appelez
https://graph.facebook.com/USER_ID/picture?type=SIZE
donde SIZE
doit être remplacé par l'un des mots suivants
square
small
normal
large
en fonction de la taille que vous souhaitez.
Cet appel renverra un URL à une seule image dont la taille est basée sur le paramètre de type que vous avez choisi.
Par exemple :
https://graph.facebook.com/USER_ID/picture?type=small
renvoie une URL vers une petite version de l'image.
L'API ne spécifie que la taille maximale des images de profil, et non la taille réelle.
Carré :
largeur et hauteur maximales de 50 pixels.
Petit
une largeur maximale de 50 pixels et une hauteur maximale de 150 pixels.
Normal
une largeur maximale de 100 pixels et une hauteur maximale de 300 pixels.
Large
une largeur maximale de 200 pixels et une hauteur maximale de 600 pixels.
Si vous appelez le USER_ID/picture par défaut, vous obtenez le type carré.
CLARIFICATION
Si vous appelez (selon l'exemple ci-dessus)
https://graph.facebook.com/redbull/picture?width=140&height=110
il retournera un JSON réponse si vous utilisez l'une des méthodes de demande du SDK de Facebook. . Sinon, il renverra l'image elle-même. Pour toujours récupérer le JSON, ajoutez :
&redirect=false
comme ça :
https://graph.facebook.com/redbull/picture?width=140&height=110&redirect=false
Un simple code d'une ligne pour sauvegarder une image de profil de taille COMPLÈTE sur votre serveur.
copy(" https://graph.facebook.com/FACEBOOKID/picture?width=9999&height=9999 ", " image.jpg ") ;
Cela ne fonctionnera que si openssl est activé dans le php.ini.