2010-06-04 12 views
6

Sto semplicemente cercando di configurare Facebook Connect per consentire la scelta sul mio sito già registrato di registrarsi con il modulo di registrazione, o di registrarsi con Facebook Connect (questo dovrebbe essere più facile di quello è, i documenti obsoleti mi stanno facendo impazzire). Quando l'utente fa clic sul pulsante, apre il popup e chiede di consentire le cose che ho chiesto correttamente. Tuttavia, quando fanno clic su Consenti, chiede di consentire nuovamente (ma solo le informazioni di base del profilo). Questo è ovviamente attivato dall'azione predefinita di fare clic sul pulsante fb: login, anche se hanno già effettuato l'accesso e hanno consentito all'app di accedere ai propri dati.Utilizzo del pulsante di accesso XFBML chiede all'utente di autenticarsi due volte

<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> 

risposta

8

Apparentemente è possibile assegnare le autorizzazioni solo nell'FBML e ignorare completamente FB.login. Sarebbe bello se Facebook lo menzionasse nei loro documenti (rant).

<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

So che questo non è il protocollo normale, ma volevo solo postare un ringraziamento. Lavorando sodo con il codice scaricato da Facebook, non ho potuto ottenere autorizzazioni estese. 4 ore di google, manuali e mal di testa non mi hanno portato dove. E pubblichi sopra: Era quello che mi serviva !!!!! Grazie mille!! –

0

Sono abbastanza sicuro che il problema è nell'assegnare "onclick" evento per fb:login-button che ha già un proprio comportamento predefinito. Basta eliminare il tag del pulsante di accesso e creare il proprio pulsante html normale (collegamento, immagine o qualsiasi altra cosa si desideri) con quell'evento onclick.

+0

Lo farei, ma il pulsante che hanno è esattamente quello che voglio e viene pre-costruito con le traduzioni. Trovo difficile credere che non ci sia un modo per farlo senza fare il mio pulsante. –