Birgit Egger: Facebook Login

Hallo,

ich weiß das ist kein JS forum - es handelt sich aber eh um eine generelle Client- Server kommunikations- Frage.

Ich bin gerade dabei für meine WebAppl ein Facebook Login bereitzustellen. Ich bin dabei vorgegangen wie auf dieser Seite Facebook für Entwickler - Login beschrieben.

Was mir jetzt nicht klar ist, wo bzw. wie ich die Daten von dem Facebook user bekomme, der sich gerade über Facebook für meine WebApp eingeloggt hat?
Weiß das vielleicht jemand?
Kommen die Daten in einer Callback- Methode zurück oder muss ich da über eine JS- Methode die FB- API aufrufen?
Besten Dank,
Birgit

  1. Kommen die Daten in einer Callback- Methode zurück oder muss ich da über eine JS- Methode die FB- API aufrufen?

    https://developers.facebook.com/docs/reference/javascript/FB.api/

    Hier kannst du dann auch FQL verwenden, um an de facto alle erdentlichen (freigegebenen) Daten des Benutzers zu kommen
    https://developers.facebook.com/docs/reference/fql/

    1. Kommen die Daten in einer Callback- Methode zurück oder muss ich da über eine JS- Methode die FB- API aufrufen?

      https://developers.facebook.com/docs/reference/javascript/FB.api/

      Hier kannst du dann auch FQL verwenden, um an de facto alle erdentlichen (freigegebenen) Daten des Benutzers zu kommen
      https://developers.facebook.com/docs/reference/fql/

      Das hab ich mir schon alles durchgelesen, aber ich bin vielleicht zu blöd, ich verstehs nicht.

      ich weiß nicht wie ich zu der ID komme, die ist ja bei Facebook gespeichert,
      Vielleicht hab ich da eine Denkblockade, aber wenn sich jemand über den Facebook- Login für meine Appl einlogged, müsste es ja eine Callback- Methode geben, mit der ich dann den Namen und das Profile- Image abfragen kann, oder?
      Anders kanns ja eigentlich nicht gehen,
      Ich kann ja nicht auf meiner WebApp ein FB- Login bereitstellen, dann loggt sich der User bei Facebook ein und ich bekomm in meiner WebApp gar nichts mit - so kanns ja nicht gehen, oder seh ich da was falsch?

      lg
      Birgit

      1. Das hab ich mir schon alles durchgelesen, aber ich bin vielleicht zu blöd, ich verstehs nicht.

        ich weiß nicht wie ich zu der ID komme, die ist ja bei Facebook gespeichert,

        der angemeldete Benutzer ist '/me' - 2. Codebeispiel

        Vielleicht hab ich da eine Denkblockade, aber wenn sich jemand über den Facebook- Login für meine Appl einlogged, müsste es ja eine Callback- Methode geben, mit der ich dann den Namen und das Profile- Image abfragen kann, oder?

        Du hast das nicht durchgelesen, oder?

        Anders kanns ja eigentlich nicht gehen,

        Ja, das kann man nicht überlesen.

        Ich kann ja nicht auf meiner WebApp ein FB- Login bereitstellen, dann loggt sich der User bei Facebook ein und ich bekomm in meiner WebApp gar nichts mit - so kanns ja nicht gehen, oder seh ich da was falsch?

        Der Nutzer muss sich bei dir aktiv anmelden oder deiner appId (siehe fb.init) bereits eine explizite Freigabe erteilt haben - nur weil er bei Facebook angemeldet ist, ist er nicht automatisch auch dir bekannt.

        1. Habs schon durchgelesen, ich bekomm aber immer "undefined" zurück mit dem Code:

            
          <html>  
              <head>  
                <title>My Facebook Login Page</title>  
              </head>  
              <body>  
            
                Standardmäßig: we give you access to the user's name and picture  
            
                <div id="fb-root"></div>  
                <script>  
                  window.fbAsyncInit = function() {  
                    FB.init({  
                      appId      : '3383323323232332443", // App ID  
                      //channelUrl : '//localhost:8080/FacebookAuthTest/channel.html', // Channel File  
                      status     : true, // check login status  
                      cookie     : true, // enable cookies to allow the server to access the session  
                      xfbml      : true  // parse XFBML  
                    });  
                    FB.api('/me', function(user) {  
                      alert("Das ist der user:  " + user + ", " + user.id);  
                      if (user) {  
                        var image = document.getElementById('image');  
                        image.src = 'http://graph.facebook.com/' + user.id + '/picture';  
                        var name = document.getElementById('name');  
                        name.innerHTML = user.name  
                      }  
                    });  
                  };  
                  // Load the SDK Asynchronously  
                  (function(d){  
                     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];  
                     if (d.getElementById(id)) {return;}  
                     js = d.createElement('script'); js.id = id; js.async = true;  
                     js.src = "//connect.facebook.net/en_US/all.js";  
                     ref.parentNode.insertBefore(js, ref);  
                   }(document));  
                </script>  
            
                <div class="fb-login-button">  
                  Login at Atleticus with Facebook  
                </div>  
            
                <input type="submit" value="Facebook Communication" name="fbcomm" onclick="buttonClicked()" />  
            
                <div align="center">  
                  <img id="image"/>  
                  <div id="name"></div>  
                </div>  
            
              </body>  
           </html>  
          
          

          In der WEb- Console wird weiters folgendes ausgegeben:

          [14:03:38.289] ({error:{message:"Invalid OAuth access token.", type:"OAuthException", code:190}}) @ http://localhost:8080/FacebookAuthTest/facebookcommunication.js:7

          Ich hab natürlich gegoogelt, da steht dann unter anderem man soll den tocken dazugeben. Ich weiß aber weder wie noch wo?
          Besten Dank!
          Birgit

          1. Ich hab natürlich gegoogelt, da steht dann unter anderem man soll den tocken dazugeben. Ich weiß aber weder wie noch wo?

            Du hast keine Authentikation gemacht - du kannst fb.api nur authentiziert aufrufen:
            https://developers.facebook.com/docs/authentication/client-side/