2010-06-28 5 views
14

Estoy tratando de obtener una foto de perfil de Facebook de un usuario en función de su dirección de correo electrónico. De hecho, quiero ofrecer a mis usuarios la opción entre usar Gravatar para su imagen o Facebook. Sin embargo, la única forma que conozco para obtener la imagen de Facebook de un usuario es a través de:Cómo obtener una foto de perfil de Facebook desde una dirección de correo electrónico

http://graph.facebook.com/[FBOOK USERNAME]/picture?type=large

Dado que los nombres de usuario pueden variar entre facebook y mi sitio, me gustaría hacerlo a través de la dirección de correo electrónico en lugar de nombre de usuario. ¿Cómo consulto la imagen de perfil de Facebook de alguien a través de la dirección de correo electrónico?

+0

Se puede realmente hacer eso? Parece un problema de seguridad permitir la recuperación de datos de Facebook basados ​​en una dirección de correo electrónico que probablemente sea información privada del usuario. Por supuesto, la definición de privacidad de Facebook puede ser más flexible que la de otros. –

+0

Estoy buscando lo mismo. Pensé en usar el nombre de usuario en la url, pero eso solo funciona si un usuario ha configurado un nombre de usuario de Facebook en www.facebook.com/nombre de usuario. – Jorre

+0

Parece que el cliente de correo electrónico Sparrow (http://sparrowapp.com/) está haciendo esto, pero requiere que se autentique contra Facebook. –

Respuesta

-2

Lo que estás pidiendo hacer es parte de por qué Facebook Connect existe.

El uso de su XFBML no muy inteligente llamado: puede solicitar a la imagen directamente: <fb:profile-pic uid="1256100362" facebook-logo="true" size="thumb"> </fb:profile-pic>

Pero hay que poner en práctica los inicios de sesión primero los FB Conectar ...

+1

esto todavía usa el UID, ya puedes hacerlo sin Facebook Connect, en el caso que has mencionado, http://graph.facebook.com/1256100362/picture?type=large – Mala

+3

yup, es una pena que podamos Hacer eso con un md5 (correo electrónico) al igual que gravatar hace – Jorre

4

Hay no parece que ser una forma oficial de hacer lo que estás pidiendo Parece que Facebook ha cerrado esto a propósito, probablemente algo relacionado con la privacidad. En realidad es muy fácil de hacer esto en unos pocos pasos en pantalla raspado aunque:

1) Visita http://www.facebook.com/#!/search.php?q=# {USERS_EMAIL_ADDRESS} & type = todas & init = SRP

2) Si la página devuelve "No se encontraron resultados para su consulta. ", entonces no tienen un perfil.

3) De lo contrario, la página contendrá una miniatura del usuario para esa dirección de correo electrónico. (algo así como http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs227.ash2/48219_72120057_3223_q.jpg)

Podría escribir una aplicación sinatra para hacer esto en unos 5 minutos, si alguien quisiera que lo haga.

Pero creo que gravatar y facebook solo deberían ser amigos.

+1

Realmente me gusta esto - No borraría la pantalla pero definitivamente puedo usar los resultados de búsqueda para obtener automáticamente los ID de facebook de los usuarios, y usar el método en mi pregunta.Sin embargo, la búsqueda solo parece funcionar cuando estás conectado, lo que me derrota haciendo esto programáticamente. – Mala

20

veo esta pregunta tiene un par de años ya, pero el mismo enfoque de búsqueda puede ser tomada usando la API de gráficos:

GET https://graph.facebook.com/search?q={EMAIL}&type=user

Usted puede intentar esto en el Graph API Explorer. No obtiene la imagen de perfil directamente, pero obtiene la identificación de usuario que puede usar fácilmente para obtener la imagen de perfil pública.

https://graph.facebook.com/{UID}/picture

+0

¡Excelente respuesta! Este debería ser el aceptado. –

+0

Exactamente - excelente respuesta. :) Lo que mucha gente extraña es que, al usar Graph API de esta manera, estás limitado a obtener la imagen de perfil * public *. Si la configuración de un usuario es tal que su foto de perfil es privada, no podrá obtenerla (que, creo que la mayoría de nosotros estaría de acuerdo, es cómo debería ser). – LloydDobbler

+10

dice "Se requiere un token de acceso de usuario para solicitar este recurso" – Adeem

Cuestiones relacionadas