252 votos

Facebook API - Cómo puedo obtener un usuario de Facebook ' imagen de perfil s a través de la API de Facebook (sin requerir el usuario para "Permitir" la aplicación)

Estoy trabajando en un CMS que trae la imagen de perfil de un usuario desde su Facebook URL (es decir, http://facebook.com/users_unique_url). ¿Cómo puedo lograrlo? ¿Hay una llamada a la API de Faceboook que obtiene la dirección URL de imagen de perfil de un usuario sin necesidad de permitir la aplicación del usuario?

406voto

Sarfraz Puntos 168484

Simplemente recuperar los datos a través de esta URL:

http://graph.facebook.com/sarfraz.anees/picture

Reemplace sarfraz.anees (mi nombre) con el nombre del usuario que desea para conseguir la foto de.

Usted puede utilizar el PHP file_get_contents función para leer la URL y proceso de los datos recuperados.

Recurso:

http://developers.facebook.com/docs/api

Nota: En php.ini, usted necesita para asegurarse de que el OpenSSL extensión está habilitado para utilizar lafile_get_contents de la función de PHP para leer esa URL.

264voto

neiker Puntos 3066

Para mostrar:

50 x 50 píxeles

<img src="https://graph.facebook.com/<?= $fid ?>/picture">

anchura de 200 píxeles

<img src="https://graph.facebook.com/<?= $fid ?>/picture?type=large">

Para salvar a

$img = file_get_contents('https://graph.facebook.com/'.$fid.'/picture?type=large');
$file = dirname(__file__).'/avatar/'.$fid.'.jpg';
file_put_contents($file, $img);

Donde $fid es el id de usuario (o alias) en Facebook...

162voto

Gunnar Karlsson Puntos 15071

ACTUALIZACIÓN:


A partir de finales de agosto de 2012, la API ha sido actualizado para permitirle recuperar perfil del usuario, fotos en diferentes tamaños. Añadir los opcionales campos de anchura y altura como los parámetros de la URL:

https://graph.facebook.com/USER_ID/picture?width=WIDTH&height=HEIGHT

donde WIDTH y HEIGHT son su pidió a los valores de dimensión.

Esto devolverá una foto de perfil con un tamaño mínimo de WIDTH x HEIGHT tratando de preservar la relación de aspecto. Por ejemplo,

https://graph.facebook.com/redbull/picture?width=140&height=110

devoluciones

    {
      "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 DE LA ACTUALIZACIÓN

Para obtener un perfil de usuario, foto, llamada

https://graph.facebook.com/USER_ID/picture

donde USER_ID puede ser el número de identificación de usuario o el nombre de usuario.

Para obtener un perfil de usuario una imagen de un tamaño específico, llame

https://graph.facebook.com/USER_ID/picture?type=SIZE

donde SIZE debe ser reemplazado con una de las palabras

square
small
normal
large

dependiendo del tamaño que desee.

Esta llamada devolverá una URL a una imagen con su tamaño basado en el tipo de parámetro.

Por ejemplo:

https://graph.facebook.com/USER_ID/picture?type=small

devuelve una dirección URL a una versión pequeña de la imagen.

La API sólo especifica el tamaño máximo para las imágenes de perfil, no el tamaño real.

Plaza:

máximo de ancho y 50 de alto.

Pequeño

máximo de 50 píxeles de ancho y una altura máxima de 150 píxeles.

Normal

máxima anchura de 100 píxeles y una altura máxima de 300 píxeles.

Grandes

máximo de 200 píxeles de ancho y una altura máxima de 600 píxeles.

Si usted llama a la predeterminada USER_ID/imagen de obtener el tipo de cuadrado.

ACLARACIÓN

Si usted llama (como por ejemplo de arriba)

https://graph.facebook.com/redbull/picture?width=140&height=110

que nos devuelve un JSON de respuesta si usted está utilizando uno de los Facebook Sdk métodos de petición. De lo contrario, se devolverá a la propia imagen. Para recuperar siempre la JSON, agregar:

&redirect=false

así:

https://graph.facebook.com/redbull/picture?width=140&height=110&redirect=false

19voto

NaturalBornCamper Puntos 829

Para obtener la URL de la imagen, no contenido binario:

$url = "http://graph.facebook.com/$fbId/picture?type=$size";

$headers = get_headers($url, 1);

if( isset($headers['Location']) )
    echo $headers['Location']; // string
else
    echo "ERROR";

6voto

Erroid Puntos 370

Yo estaba pensando - tal vez el ID será una herramienta útil. Cada vez que un usuario crea una nueva cuenta de que debe obtener una mayor IDENTIFICACIÓN. Busqué en google y encontré que hay un método para la estimación de la cuenta fecha de creación de IDENTIFICACIÓN y Massoud Seifi de metadatascience.com reunió a algunos buenos datos al respecto.

Enter image description here

La lectura de este artículo:

http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/

Y aquí están algunas de Identificadores de descarga:

http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/

0voto

les debo la vida amigos muchas gracias me tomo varios días llegar hasta aca :'( pero al fin lo logre

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X