Programación Web. Integración con APIs

Sesión 3. Desarrollo en Facebook. JavaScript SDK

El SDK de Facebook para JavaScript proporciona un completo conjunto de funciones del lado del cliente para diferentes tareas como añadir Social Plugins, realizar llamadas API y realizar login mediante Facebook. Las funcionalidades que nos ofrece este SDK son las siguientes:

  • Habilita el uso del botón Me gusta y otros plugins sociales en tus sites.
  • Habilita la posibilidad de hacer Login en nuestro site mediante una cuenta de Facebook, mejorando así el rechazo de los usuarios a registrarse en un nuevo site.
  • Hace que sea fácil de poner en el Graph API de Facebook
  • Lanza cuadros de diálogo que facilita la realización de varias acciones como el compartir experiencias
  • Facilita la comunicación cuando creas un juego o una pestaña de aplicación en Facebook

El SDK, los plugins sociales y los diálogos funcionan tanto en exploradores de escritorio como en móviles. Nosotros nos centraremos en los primeros.

El SDK de Facebook para JavaScript

Como hemos dicho, el SDK para JavaScript permite acceder y trabajar con toda la API de Facebook. Para utilizarlo no necesitamos descargar ni instalar nigún fichero en la máquina del usuario. Únicamente debemos incluir un pequeño trozo de código JavaScript tras abrir la etiqueta <body> en nuestro html para realizar la carga asíncrona del SDK en nuestra página:

<html>

  <body>
  <div id="fb-root"></div>

  <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'your-app-id',    
          authResponse: true,        
          status    : true,        // chequear el estado del status del usuario al inicializar
          cookie    : true,        // definir sesiones en cookies permitiendo acceso del server a la sesión
          xfbml          : true,        // activar el parser de XFBML tags para plugins sociales
          version        : 'v2.3'
        });
      };

      (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'));
  </script>
  </body>
</html>

En primer lugar hemos definido una etiqueta <div> con el identificador que será donde se va a producir la carga del SDK. Esta etiqueta tiene el identificador fb_root que utilizaremos para referirnos a ella. Después definimos una función que va a realizar la petición de carga del SDK. Podemos ver como esta función recibe el DOM mediante el objeto document, el tipo de etiqueta donde se incluirá la carga. La llamada a window.fbAsyncInit nos permite realizar la carga asíncrona del SDK mediante la función FB.init.

Un detalle importante que no debemos pasar por alto es el campo appId dentro de la llamada a FB.init. Este campo hace referencia a un identificador de aplicación de Facebook que podemos obtener al darnos de alta como desarrolladores en la web de Facebook. Sin este identificador no se realizará la carga del SDK. Además, si varias páginas utilizan el mismo identificador, Facebook puede bloquear la carga del SDK mediante dicho app-id.

Para que el SDK de Facebook funcione, la página donde se realiza la carga tiene que estar visible públicamente.

El método FB.init

El método FB.getLoginStatus

Permisos oAuth

FB.Login

FB.Logout