¿Cómo obtener nuestro perfil con la Graph API de Facebook (PHP)?
- Andrés Cruz
En esta entrada veremos cómo obtener nuestro perfil con la Graph API de Facebook; ya hemos trabajado anteriormente con la Graph API de Facebook empleando la SDK que proveen para PHP publicando un post en nuestro muro empleando las tecnologías señaladas anteriormente.
Cómo se ha mencionó anteriormente, para realizar cualquier operación con la API Graph de Facebook debemos comenzar en crear una aplicación en la Graph API de Facebook los cuales son unos sencillos pasos que hay que seguir para obtener unos tokens de autenticación, dar algunos parámetros de seguridad a nuestra cuenta que los puedes seguir en el enlace anterior; con estos tokens de acceso los estableceremos en nuestra aplicación.
Saltaremos las indicaciones para instalar la SDK de Facebook en nuestro proyecto que ya se ha tratado antes (revisa en enlace anterior en caso de alguna duda); dejando de lado la SDK de Facebook: necesitamos dos archivos PHP:
- La ventana de autenticación:
index.php
. - La ventada para la consulta de la información del perfil:
perfil.php
.
En general, para cualquier operación con la Graph API de Facebook es necesario emplear al menos dos script PHP, uno que nos ayuda con la autenticarsión mediante un link y previa validación y solicitud de permisos al usuario realizada por Facebook en caso de que la aplicación PHP sea la primera vez que interactúe con una cuenta y otro script PHP el cual realiza las tareas que deseamos; en nuestro caso, traernos la información del perfil.
El código de nuestro index.php
es el que realiza la autenticación y el contenido del mismo no ha variado demasiado:
// Create our Application instance (replace this with your appId and secret). $facebook = new Facebook\Facebook(array( 'app_id' => $config['App_ID'], 'app_secret' => $config['App_Secret'], 'default_graph_version' => 'v2.4' )); $helper = $facebook->getRedirectLoginHelper(); $permissions = ['email', 'user_likes','publish_actions','user_managed_groups']; // optional $loginUrl = $helper->getLoginUrl('http://localhost/test/fbtest/perfil.php', $permissions); echo 'Log in with Facebook!';
Como vemos, tras previa solicitud al usuario, el usuario es redirigido a perfil.php
el cual es el que trae la información del usuario.
Finalmente, este es el código completo el cual puedes descargar mediante los links ubicados al inicio y final de esta entrada; el codigo que nos interesa es el siguiente:
try { $helper = $fb->getRedirectLoginHelper(); $accessToken = $helper->getAccessToken(); // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,work,website,email,first_name,birthday', $accessToken); } 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; } $user = $response->getGraphUser(); echo 'Name: ' . $user['name'];
Del cual nos interesa dos funciones:
$fb->get('/me?fields=id,name,work,website,email,first_name,birthday', $accessToken);
En general para obtener cualquier datos de Facebook debemos emplear la función anterior que realiza una solicitud GET al recurso /me
que forma parte de la API Graph de Facebook que permite obtener información del usuario autenticado mediante una serie de parámetros; entre los principales tenemos:
id
: Identificador numérico de la cuenta de la persona.name
: Nombre completo de la persona.birthday
: Fecha de nacimiento de la persona en formato MM/DD/YYYY.education
: Educación de la persona.gender
: Sexo de la persona
Entre otros campos que podemos obtener; puedes ver la documentación completa en API Graph Version - User.
Y por último la función con la cual obtenemos la información del perfil del usuario autenticado según los parámetros solicitados anteriormente:
$user = $response->getGraphUser();
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter