2011-05-01 46 views
15

Necesito obtener un usuario de Facebook, sexo, foto y otros datos de perfil con Javascript.Obtener un perfil de usuario de Facebook con Javascript

Recuerdo que había un método para obtener un objeto de usuario con .id, .gender, .photo pero no tengo una copia de la llamada de API y no puedo encontrar una explicación en la documentación.

¿Cómo obtengo el UID del usuario y el sexo con Javascript?

Gracias

Respuesta

19

Actualización: He añadido un poco más de detalle para la respuesta:

En primer lugar, es necesario llamar FB.init y añadir su ID de aplicación:

FB.init(
{ 
    appId : APP_ID, 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true // parse XFBML 
}); 

Siguiente , compruebe si hay una sesión abierta (es decir, el usuario ha iniciado sesión)

if(FB.getSession() != null) { 

y consultar los detalles por:

FB.api('/me', function(response) 
    { 
     alert ("Welcome " + response.name + ": Your UID is " + response.id); 
    }); 
} 

También tendrá que añadir <div id="fb-root"></div> a la <body> de la página, y la carga <script src="http://connect.facebook.net/en_US/all.js"></script>

El Picure perfil de usuario se puede acceder como http:/graph.facebook.com/USERID/picture/

Comprobar la referencia API Graph aquí: http://developers.facebook.com/docs/reference/api/user/

y la referencia FB SDK aquí: http://developers.facebook.com/docs/reference/javascript/

+0

@gary Agregado en nombre de Aleadam –

+0

Gracias, pero esta función está en desuso. use 'FB.getLoginStatus' en su lugar. – pltvs

+0

¿Cómo obtener la dirección de usuario? ¿Debo usar response.address? –

20

La función FB.getSession() utilizada en la respuesta aceptada a esta pregunta en 2011 ahora está (2012) obsoleta y eliminada del SDK de JS de Facebook.

Todavía se puede descubrir del usuario de Facebook Identificación con el método getLoginStatus() así:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    alert ("Your UID is " + response.authResponse.userID); 
    } 
}); 

Nota: usted todavía tiene que inicializar el API de Facebook y poner el elemento fb-root en el código HTML, como Aleadam explica en el respuesta aceptada

+1

Su solución funciona, pero hay un pequeño error. Usé fb.login() y allí tienes que usar response.authResponse.userId en lugar de userID. Todavía gracias muchas veces me salvó de un gran problema. upvoted :) –

+0

Extraño. Tanto mi prueba local como la documentación de Facebook funcionan con mayúsculas D. Consulte http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/. – user327961

+0

Es realmente raro ahora, porque aquí no funciona con mayúsculas: D –

Cuestiones relacionadas