php type Comment puis-je afficher la photo du profil de l'utilisateur en utilisant l'API graphique Facebook?




og:type (7)

Je voudrais afficher l'image de profil de l'utilisateur à l'intérieur de ma page de toile d'applications, est-il un moyen de le faire en utilisant l'API graphique?

Je sais que je peux le faire en utilisant FBML mais je voudrais aussi passer la photo de profil à un jeu flash que je fais, donc je devrais obtenir la photo de profil de l'API et l'envoyer comme une variable, voici le code I avoir 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 nouveau sur le graphique api, et je fais probablement quelques erreurs très amateur!


J'avais un problème pour récupérer des photos de profil en utilisant CURL. J'ai pensé pendant un moment que quelque chose n'allait pas dans ma mise en œuvre de l'API Facebook, mais j'ai besoin d'ajouter un peu à mon CURL appelé:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Pour obtenir différentes tailles, vous pouvez utiliser le paramètre type:

Vous pouvez spécifier la taille d'image que vous voulez avec l'argument type, qui doit être un 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 .


Une chose très importante est que, comme toute autre demande d'API Graph, vous n'obtiendrez pas les données JSON en réponse, l'appel renvoie plutôt un HTTP REDIRECT à l'URL de la photo du 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 les FQL.


Vous pouvez également redimensionner l'image de profil en fournissant les paramètres indiqués ci-dessous.

https://graph.facebook.com/[UID]/picture?width=140&height=140

travaillerait aussi.

Mise à jour: FB ne supporte plus cela. Juste un ensemble de tailles prédéfinies.


EDIT : Donc, Facebook a encore changé! Plus besoin de chercher par nom d'utilisateur - vous avez modifié la réponse ci-dessous ...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID = l'identifiant du profil ou de la page
  • rediriger renvoie soit json (false), soit redirige vers l'image (true)
  • la hauteur et la largeur est la culture
  • ne nécessite pas d'authentification

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

Facebook Image graphique


Voici le code qui a fonctionné pour moi!

En supposant que vous avez une session valide,

//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 . "\" />";

Thanx va à Raine, vous da man!


Connaissant l'identifiant de l'utilisateur l'URL de leur photo de 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







facebook-graph-api