2012-10-29 14 views
5

Ich möchte Benutzern erlauben, einen Knopf auf meiner Seite zu drücken, der ein Formular mit ihrem Vornamen, Nachnamen und ihrer E-Mail-Adresse automatisch ausfüllt, sofern sie bei Facebook angemeldet sind. Wenn dies nicht der Fall ist, sollte das Facebook-Anmeldeformular eingeblendet werden, damit sich der Benutzer anmelden kann. Anschließend sollte die automatische Befüllung stattfinden.Formular mit Facebook-Daten ausfüllen

Ich habe damit in der Javascript-Testkonsole rumgemacht. Ich weiß, dass ich den first_name, den last_name und die email aufrufen muss, aber ich bin nicht sicher, wie man meine Formularfelder mit dieser Information auffüllt.

FB.api(
     { 
     method: 'fql.query', 
     query: 'SELECT first_name, last_name, email FROM user WHERE uid=' + response.authResponse.userID 
     }, 

Ich möchte dies in Javascript tun. Ich muss eine Funktion erstellen, die ein Formular mit diesen Informationen beim Klicken ausfüllen wird. Irgendwelche Ideen?

Antwort

8

Warum verwenden Sie das Registrierungs-Plugin nicht? Es wird Ihnen eine Menge Arbeit ersparen https://developers.facebook.com/docs/plugins/registration/

Wenn Sie benutzerdefinierte Form haben möchten. Sie müssten die Erlaubnis vom Benutzer nehmen und seine Details erhalten. Sie können folgenden Code verwenden:

<div id="fb-root"></div> 
<script src="https://connect.facebook.net/en_US/all.js"></script> 
FB.init({appId: 'XXXXXXXXXXXXX',status : true,xfbml : true, cookie: true ,oauth : true}); 


function login(){ 
     FB.getLoginStatus(function(response) { 
     // checks if user already authorized 
        if (response.status === 'connected') { 
          FB.api('me?fields=id,name,email', function(user) { 
            if(user != null) { 
                   username = user.name; 
                   uid = user.id; 
                   email = user.email; 
                  } 
           }); 

        } else { 
     // If user is not authorized call FB.login for pop up window for authorization , scope defines list of persmission requested with user 
        FB.login(function(response) { 
          if (response.authResponse.accessToken) {  
              FB.api('me?fields=id,name,email', function(user) { 
                if(user != null) { 
                   username = user.name; 
                   uid = user.id; 
                   email = user.email; 
                  } 
                 }) 
                } 
               }, {scope:'email'}); 
        } 

       }); 
    } 

Sie rufen login() auf Knopfdruck.

+0

ich einen Blick auf diese haben, aber ich bereits eine Arbeitsform im Einsatz haben, so stattdessen eine andere Form der Zugabe möchte ich nur dies vorab füllen mit Facebook Daten auf Knopfdruck erstellen. –

+0

Ich habe meine Antwort bearbeitet, um Code zu enthalten, um Benutzerdetails ohne Registrierungs-Plugin zu erhalten. –

0

Sie können so etwas versuchen:

<script> 
     FB.api(
     { 
     method: 'fql.query', 
     query: 'SELECT first_name, last_name, email FROM user WHERE uid= ' + response.authResponse.userID}, function (data) { 
     if (data && data[0]) { 
      if (data[0].first_name) { 
       document.getElementById('user_first_name').value = data[0].first_name; 
      } 
      if (data[0].last_name) { 
       document.getElementById('user_last_name').value = data[0].last_name; 
      } 
      if (data[0].email) { 
       document.getElementById('user_email').value = data[0].email; 
      } 
     } 

     }); 
</script> 

<input id="user_first_name" /> 
<input id="user_last_name" /> 
<input id="user_email" /> 
+0

Wenn "response.authResponse.userID" eine gültige Benutzer-ID ist. –

Verwandte Themen