it-swarm-es.com

¿Cómo puedo mostrar la imagen del perfil de los usuarios utilizando la api de gráfico de Facebook?

Me gustaría mostrar la imagen del perfil de los usuarios dentro de la página del lienzo de las aplicaciones, ¿hay alguna forma de hacerlo utilizando la api del gráfico?

Sé que puedo hacerlo usando FBML pero también me gustaría pasar la foto de perfil a un juego flash que estoy haciendo, así que tendría que obtener la foto de perfil de la api y enviarla como una variable, aquí está el código I tener hasta ahora,

$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'] no parece estar funcionando, pero todavía soy muy nuevo en el api del gráfico, y probablemente estoy cometiendo algunos errores muy amateur.

70
Odyss3us

Sabiendo la identificación del usuario, la URL para su imagen de perfil es: -

http://graph.facebook.com/[UID]/picture

donde en lugar de [UID] coloca su variable $ uid, y esa URL se puede pasar a flash

125
Raine

para obtener diferentes tamaños, puede utilizar el parámetro de tipo:

Puede especificar el tamaño de imagen que desee con el argumento de tipo, que debe ser cuadrado (50x50), pequeño (50 píxeles de ancho, altura variable) y grande (alrededor de 200 píxeles de ancho, altura variable): http://graph.facebook.com/squall3d/picture?type=large .

81
squall3d

También puede cambiar el tamaño de la imagen de perfil proporcionando parámetros como se muestra a continuación.

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

funcionaria tambien.

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

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

Funciona bien para mí

7
Kannan Prasad

EDITAR: ¡Así que Facebook lo ha cambiado de nuevo! No más búsquedas por nombre de usuario - han enmendado la respuesta a continuación ...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID = el perfil o la identificación de la página
  • redirigir devuelve json (falso) o redirecciona a la imagen (verdadero)
  • la altura y el ancho es el cultivo.
  • no requiere autenticación

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

Imagen de la gráfica de Facebook

4
sidonaldson

¡Aquí está el código que me funcionó!

Suponiendo que tiene una sesión válida en marcha,

//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 a Raine, hombre!

3
Odyss3us

Una cosa muy importante es que, al igual que otras solicitudes de Graph API, no obtendrá los datos JSON en respuesta, sino que la llamada devuelve un HTTP REDIRECT a la URL de la foto del perfil. Por lo tanto, si desea obtener la URL, debe leer el encabezado HTTP de la respuesta o puede usar FQLs.

1
Sanket Sahu

Estaba teniendo problemas para obtener fotos de perfil mientras utilizaba CURL. Por un momento pensé que había algo mal en mi implementación de la API de Facebook, pero necesito agregar un poco a mi CURL llamado:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
1
adjwilli