Inicio de sesión con Facebook SDK y php nativo

Login social

Image

Obtener todos sus datos de Facebook es muy fácil con Facebook Login y php nativo

Facebook Login es una herramienta muy interesante que permite agilizar el inicio de sesión en sitios web y aplicaciones. Es así que cuando ingresamos con nuestro usuario de Facebook, la aplicación o sitio web toma los datos que tenemos asociados al perfil, tales como: nombre, apellido, rango de edad, sexo y correo electrónico. Lo anterior resulta siendo mas agil y cómodo para el usuario como beneficioso para el administrador del sistema.

A continuación, les presento como está desarrollado el proyecto relativamente básico para aprender a desarrollar software con el lenguaje de programación php.

Estructura del proyecto



config.php

<?php session_start(); include_once("facebook-sdk-5/src/Facebook/autoload.php"); $fb = new Facebook\Facebook(array( "app_id" => "*******", // Replace with your app id "app_secret" => "*******************", // Replace with your app secret "default_graph_version" => "v3.2", )); $helper = $fb->getRedirectLoginHelper(); ?>

Se utiliza la version 5 del SDK de Facebook que es quien se encarga de capturar las variables de app id de y la llave secreta que Facebook suministre. Entonces lo que vamos hacer acá es asignar las llaves a la librería de Facebook, para que nos pueda conectar bien.

fb-callback.php

<?php include_once("config.php"); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { echo "Graph returned an error: " . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { echo "Facebook SDK returned an error: " . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header("HTTP/1.0 401 Unauthorized"); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header("HTTP/1.0 400 Bad Request"); echo "Bad request"; } exit; } if(!$accessToken->isLongLived()){ try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $e->getMessage() . "</p>\n\n"; exit; } } $res = $fb->get("/me",$accessToken->getValue()); $fbUser = $res->getDecodedBody(); $resImg = $fb->get("/me/picture?type=large&amp;redirect=false",$accessToken->getValue()); $picture = $resImg->getGraphObject(); $_SESSION["fbUserId"] = $fbUser["id"]; $_SESSION["fbUserName"] = $fbUser["name"]; $_SESSION["fbAccessToken"] = $accessToken->getValue(); header("Location: welcome.php"); exit; ?>
Este archivo nos permite recibir la respuesta que nos retorna Facebook para así poder obtener los datos solicitados, tales como la foto de perfil y el nombre de usuario. Es así como podrás realizar el llamado de cada una de las variables que desees obtener o traer a la aplicación. Una vez traídos los datos que decidiste obtener, podrás guardarlos en tu base de datos si así lo deseas.

logout.php

<?php include_once("config.php"); session_destroy(); unset($_SESSION["fbUserId"]); unset($_SESSION["fbUserName"]); unset($_SESSION["fbAccessToken"]); header("location: http://localhost/php-login-facebook/index.php"); /*change url for you localhost*/ exit; ?>
Cerrar sesión es donde se controla la salida segura del usuario de la aplicación borrando su id y su nombre de usuario.