web-dev-qa-db-fra.com

Comment puis-je afficher la photo de profil des utilisateurs à l'aide de l'API graphique Facebook?

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!

70
Odyss3us

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

125
Raine

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 .

81
squall3d

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.

22
Deepak Thomas
  //create the url
  $profile_pic =  "http://graph.facebook.com/".$uid."/picture";

 //echo the image out
 echo "<img src=\"" . $profile_pic . "\" />"; 

Fonctionne bien pour moi

7
Kannan Prasad

[~ # ~] é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
  • UID = le profil ou l'identifiant de la page
  • redirect renvoie soit json (false) ou redirige vers l'image (true)
  • hauteur et largeur est la récolte
  • ne nécessite pas d'authentification

par exemple. https://graph.facebook.com/4/picture?redirect=false&height=200&width=2

doc graphique Facebook

4
sidonaldson

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!

3
Odyss3us

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.

1
Sanket Sahu

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);
1
adjwilli