Facebook login api

Introduction

With the growing usage of social media, such as facebook, instagram, twitter, youtube, linkedin, github, and weibo, people now can't live without them. Many would have an account on these platform and share personal information, photo, and post with others. As a result, we may utilize this situation, develop applications using the logging in information of these social media, and gain users' information.
This is a demonstation of how to include facebook buttons, such as login, like, and share. After loggin in, the users' information would be printed below the button in a json format. I would go through the process from creating a facebook application and the configuration needed below.

Demonstration

Facebook application setup

  1. Login to your facebook develoeper account at Facebook developer.
  2. Create a new application on the top right menu, clicking on the Add a new App.
    Facebook developer menu
  3. Choose the platform. Here, I choose www since I'm developing a facebook application on this webpage.
    Facebook application platform
  4. Enter the name of the application.
    Facebook application name
  5. After creating a facebook application, clicking on the setting on the left hand side menu, here's where you may enter and change the url of the web site.
    Facebook application setting
  6. Using the code from the Facebook login documents
      // This is called with the results from from FB.getLoginStatus().
      function statusChangeCallback(response) {
        console.log('statusChangeCallback');
        console.log(response);
        // The response object is returned with a status field that lets the
        // app know the current login status of the person.
        // Full docs on the response object can be found in the documentation
        // for FB.getLoginStatus().
        if (response.status === 'connected') {
          // Logged into your app and Facebook.
          testAPI();
        } else if (response.status === 'not_authorized') {
          // The person is logged into Facebook, but not your app.
          document.getElementById('status').innerHTML = 'Please log ' +
            'into this app.';
        } else {
          // The person is not logged into Facebook, so we're not sure if
          // they are logged into this app or not.
          document.getElementById('status').innerHTML = 'Please log ' +
            'into Facebook.';
        }
      }
    
      // This function is called when someone finishes with the Login
      // Button.  See the onlogin handler attached to it in the sample
      // code below.
      function checkLoginState() {
        FB.getLoginStatus(function(response) {
          statusChangeCallback(response);
        });
      }
    
      window.fbAsyncInit = function() {
      FB.init({
        appId      : '{your-app-id}',
        cookie     : true,  // enable cookies to allow the server to access 
                            // the session
        xfbml      : true,  // parse social plugins on this page
        version    : 'v2.2' // use version 2.2
      });
    
      // Now that we've initialized the JavaScript SDK, we call 
      // FB.getLoginStatus().  This function gets the state of the
      // person visiting this page and can return one of three states to
      // the callback you provide.  They can be:
      //
      // 1. Logged into your app ('connected')
      // 2. Logged into Facebook, but not your app ('not_authorized')
      // 3. Not logged into Facebook and can't tell if they are logged into
      //    your app or not.
      //
      // These three cases are handled in the callback function.
    
      FB.getLoginStatus(function(response) {
        statusChangeCallback(response);
      });
    
      };
    
      // Load the SDK asynchronously
      (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
    
      // Here we run a very simple test of the Graph API after login is
      // successful.  See statusChangeCallback() for when this call is made.
      function testAPI() {
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) {
          console.log('Successful login for: ' + response.name);
          document.getElementById('status').innerHTML =
            'Thanks for logging in, ' + response.name + '!';
        });
      }
    				
    and a simple html button,
    <fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
    </fb:login-button>
    				
    a simple login button would be finished.

Conslusion

To insert a social button into an application is quite simple and need only to use the code on the facebook developer page, it's relatively easy to integrate these social medias.

History

First revision: add description - 2016/01/28

Reference

  1. Facebook developer
  2. Permissions reference
  3. Facebook login