Je souhaite afficher la photo de profil des utilisateurs dans la page de canevas de mes applications. Existe-t-il un moyen de le faire en utilisant l’application Graph api?
Je sais que je peux le faire en utilisant FBML mais je voudrais aussi passer la photo de profil à un jeu flash que je suis en train de réaliser. Je devrais donc obtenir la photo de profil depuis l’API et l’envoyer sous forme de variable, voici le code I ont jusqu'ici,
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET_KEY,
'cookie' => true,
'domain' => 'myurl/facebook-test'
));
$session = $facebook->getSession();
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$updated = date("l, F j, Y", strtotime($me['updated_time']));
echo "Hello " . $me['name'] . $me['picture'] . "<br />";
echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;
$me['picture']
ne semble pas fonctionner, mais je suis encore très novice dans l’API des graphes et je fais probablement quelques erreurs très amateurs!
Connaissant l'identifiant de l'utilisateur, l'URL de la photo de leur profil est: -
http://graph.facebook.com/[UID]/picture
où à la place de [UID] vous placez votre variable $ uid, et cette URL peut être passée à flash
pour obtenir différentes tailles, vous pouvez utiliser le paramètre type:
Vous pouvez spécifier la taille de l'image souhaitée avec l'argument type, qui doit être carré (50x50), petit (50 pixels de large, hauteur variable) et grand (environ 200 pixels de large, hauteur variable): http : //graph.facebook.com/squall3d/picture? type = large .
Vous pouvez également redimensionner la photo de profil en fournissant les paramètres indiqués ci-dessous.
https://graph.facebook.com/[UID]/picture?width=140&height=140
fonctionnerait aussi.
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
Fonctionne bien pour moi
[~ # ~] éditer [~ # ~] : Facebook a donc à nouveau changé! Plus de recherche par nom d'utilisateur - avons modifié la réponse ci-dessous ...
https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
par exemple. https://graph.facebook.com/4/picture?redirect=false&height=200&width=2
Voici le code qui a fonctionné pour moi!
En supposant que vous ayez une session valide en cours,
//Get the current users id
$uid = $facebook->getUser();
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
Merci à Raine, vous êtes un homme!
Une chose très importante est que, comme pour les autres requêtes d'API Graph, vous n'obtiendrez pas les données JSON en réponse, mais l'appel renvoie un HTTP REDIRECT à l'URL de la photo de profil. Donc, si vous voulez récupérer l'URL, vous devez soit lire l'en-tête HTTP de la réponse, soit utiliser des FQL.
J'avais un problème pour récupérer des photos de profil lors de l'utilisation de CURL. Je pensais pendant un moment que quelque chose n'allait pas dans la mise en œuvre de l'API Facebook, mais je dois ajouter un peu à mon CURL appelé:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);