2010-06-04 9 views
6

Estoy simplemente tratando de configurar Facebook Connect para permitir que la opción en mi sitio ya establecido se registre con el formulario de registro, o para registrarse con Facebook Connect (esto realmente debería ser más fácil que es, los documentos obsoletos me están volviendo loco). Cuando el usuario hace clic en el botón, abre la ventana emergente y pide que permita las cosas que pregunté correctamente. Sin embargo, cuando hacen clic en Permitir, solicita volver a permitir (pero solo la información de perfil básica). Obviamente, esto se desencadena a partir de la acción predeterminada de hacer clic en el botón fb: login, aunque ya hayan iniciado sesión y hayan permitido que la aplicación acceda a sus datos.Usando el botón de inicio de sesión de XFBML pide al usuario que se autentique dos veces

<fb:login-button size="medium" length="long" v="2" onclick="fb_login()"></fb:login-button> 
<div id="fb-root"></div> 
<script src="http://static.ak.fbcdn.net/connect/en_US/core.js"></script> 
<script> 
    FB.init({appId: '<app_id>', status: true, cookie: true, xfbml: true}); 

    function fb_login() { 
     FB.login(function(response) { 
      if (response.session) { 
       if (response.perms) { 
        // they have allowed the app, continue with registration 
       } 
      } 
     }, {perms:'email,user_birthday'}); 
    } 
</script> 

Respuesta

8

Aparentemente solo puede asignar los permisos en el FBML y puede omitir la llamada a FB.login por completo. Sería genial si Facebook mencionara eso en sus documentos (despotrica).

<fb:login-button size="medium" length="long" v="2" perms="email,user_birthday" onlogin="fb_login()"></fb:login-button> 
<div id="fb-root"></div> 
<script src="http://static.ak.fbcdn.net/connect/en_US/core.js"></script> 
<script> 
    FB.init({appId: '<app_id>', status: true, cookie: true, xfbml: true}); 

    function fb_login() { 
      // they have allowed the app, continue with registration 
    } 
</script> 
+1

Sé que este no es el protocolo normal, pero solo quería publicar un agradecimiento. Trabajando duro con el código descargado de Facebook, no pude obtener permisos extendidos. 4 horas de google, manuales y dolores de cabeza me llevaron a ningún lado. Y publicas arriba: ¡Eso era lo que necesitaba! ¡¡Muchas gracias!! –

0

Estoy bastante seguro de que el problema es en la asignación de evento "onclick" a fb:login-button que tiene su propio comportamiento por defecto ya. Simplemente abandone esa etiqueta del botón de inicio de sesión y cree su propio botón html (enlace, imagen o lo que quiera) con ese evento onclick.

+0

Lo haría, pero el botón que tienen es exactamente lo que quiero y viene preconstruido con las traducciones. Me resulta difícil creer que no hay una manera de hacer esto sin hacer mi propio botón. –

Cuestiones relacionadas