Facebook API: checking if user is logged in on connect

I have been trying to get my website to check if the user is logged in on page load but I have not been able to get it to work despite following API instructions, here’s an example:

<!DOCTYPE html>
    <html>
        <head>
             <title>My Facebook Login Page</title>
        </head>
        <body>
            <div id="fb-root"></div>
            <script>
                alert('hello');
                window.fbAsyncInit = function() {
                    FB.init({
                        appId  : 'APP_ID',
                        status : true, 
                        cookie : true,
                        xfbml  : true,
                        oauth  : true
                    });

                    FB.getLoginStatus(function( response ) {
                       console.log(response);
                       alert('hello2');  
                    });

                    FB.Event.subscribe('auth.statusChange', function(response) {
                       alert('hello2');
                    });

                    FB.Event.unsubscribe('auth.statusChange');
               };
               (function(d){
                   var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
                   js = d.createElement('script'); js.id = id; js.async = true;
                   js.src = "//connect.facebook.net/en_US/all.js";
                   d.getElementsByTagName('head')[0].appendChild(js);
               }(document));
           </script>
       </body>
    </html>

The alert is never even hit unless the user is logged in, if he is logged out, this alert or anything that would be inside that code block never triggers.

  • Google maps API: Marker image positioning
  • Need help converting to Twitter API v1.1 - JavaScript
  • Unable to drill down into a variable in Firebug
  • Single page apps: auth token management and browser refreshes
  • how to load google client.js dynamically
  • What are good examples of REST API client libraries in JavaScript
  • Alternative to the Facebook Comment Box Plugin?
  • Facebook api in javascript: how add the privacy?
  • Converting base64 image to multipart/form-data and sending with jQuery
  • linkedin Uncaught Error: You must specify a valid JavaScript API Domain as part of this key's configuration
  • Google Maps Uncaught TypeError: Cannot read property 'LatLng' of undefined
  • Google+ API to get all the photos
  • One Solution collect form web for “Facebook API: checking if user is logged in on connect”

    In your example above remove the trailing comma (oauth: true,) // that might just be from copy/paste but want to eliminate any gotchas

    For debugging, console logging is my preferred method but since you’re not even seeing alerts, your situation is a little bit tricky.

    FB.Event.subscribe("auth.statusChange", function(response) {
      console.log(response);
    });
    
    FB.Event.unsubscribe("auth.statusChange");
    // If you were to get subscribe to work, think about unsubscribing at some point to, since most likely that's only for an initial check
    

    Alternatively, try using the getLoginStatus instead of the event subscription.

    FB.getLoginStatus(function( response ) {
        console.log(response);  
    });
    

    Response should give you an object and you can check response.status and its possible values are: connected, not_authorized or unknown
    response.authResponse will include properties like: accessToken, expiresIn, etc.