Hola amigos de androideity, este post tiene la finalidad de explicar como implementar en Android un Single-Sing-On (SSO) con una aplicación de facebook, SSO es una manera de loggearse dentro de una aplicación por medio de la API de Facebook, sin tener que pedir el nombre de usuario y contraseña de una cuenta de facebook. Esto es posible en android si en el dispositivo se cuenta con la aplicación oficial de facebook, y esta tiene guardada una sesión de facebook, de lo contrario la API de facebook pedirá los datos de la sesión al usuario.
Comenzaremos creando una aplicación en facebook, lo cual podemos hacer en este link https://developers.facebook.com/apps
Les quedará algo así:
Para este ejemplo solo necesitamos asignarle nombre a nuestra aplicación, y fijarnos en la APPID que se muestra, ya que la utilizaremos en nuestro proyecto android, también podemos ver el check de NAtive Android App, el cual habilitaremos más adelante para lograr implementar SSO en android.
A continuación, descargamos la SDK oficial de Facebook para android, la cual esta en github: https://github.com/facebook/facebook-android-sdk
Una vez que tenemos la SDK de facebook, creamos nuestro proyecto android, en el cual incluiremos las clases del SDK de facebook, dejando la estructura como la siguiente manera:
Ahora pasaremos con nuestra clase main, en mi caso, le he cambiado el nombre a “FBConnectTestActivity”.
En esta creamos una nueva instancia de la clase Facebook, y en el constructor le pasaremos el ID de nuestra aplicación, y en el onCreate() de nuestra actividad, le daremos el authorize() a la instancia de Facebook para loggear al obtener un token de acceso a la aplicación de Facebook.
El metodo de authorize() nos regresa un DialogListener, en el cual cachamos si se obtuvieron los datos correctamente, si existieron errores o si se cancela la petición por medio de onComplete(), onFacebookError(), onError() y onCancel().
Adicionalmente, debemos de sobrecargar el metodo de onActivityResult() del Activity para cachar el callback de la clase de facebook.
Nuestra clase que de la siguiente manera:
Ahora debemos de habilitar en nuestra aplicación de Facebook el SSO, regresemos a nuestro aplicación en facebook, y habilitaremos la opción de Aplicación Android Nativa, y activemos el configurado para android SSO, y en el campo de Tecla de cuadrado Android agregaremos la firma de nuestra aplicación android, esta se obtiene por medio de la keytool de android en consola, si solo estamos haciendo pruebas, debemos hacer uso de la llave por default de android, la cual es la “debug.keystore”, si exportamos nuestro proyecto debemos de hacer uso del código generado por la llave con la que se firmo la apk. Más información de como obtener la firma de llaves de aplicaciones android en este link: http://developer.android.com/tools/publishing/app-signing.html
Una vez que tenemos nuestro codigo en la aplicación, guardamos los cambios.
Ahora podemos ejecutar nuestro proyecto android y ver como se muestra un Dialog el cual pide al usuario dar permisos de que esta aplicación acceda a su información de facebook.
El código completo del ejemplo lo puedes ver en: https://github.com/ChelixPreciado/androidsso
Saludos..










Pingback: Permisos de Facebook SDK en Android | Androideity