Tokens de acceso en el inicio de sesión con Facebook en sitios web

Al final del proceso de inicio de sesión, se generará un token de acceso. Este token de acceso es el elemento que se pasa con todas las llamadas a la API como prueba de que una determinada persona hizo la llamada desde una app específica.

El SDK de Facebook para JavaScript identifica de manera automática el almacenamiento del token de acceso y el seguimiento del estado de inicio de sesión en tu navegador, por lo que no es necesario que almacenes los tokens de acceso en el propio navegador.

Sin embargo, un patrón común es tomar el token de acceso y volver a pasarlo a un servidor para que ese servidor haga las llamadas en nombre de una persona. Para obtener el token de un navegador, puedes usar el objeto response que se devuelve mediante FB.getLoginStatus():

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    console.log(response.authResponse.accessToken);
  }
});

El token es una cadena opaca de longitud variable.

Ten también en cuenta que los tokens de acceso que se generan en los navegadores suelen tener una vida útil de solo un par de horas y que el SDK para JavaScript lo actualiza de manera automática. Si haces llamadas desde un servidor, será necesario que generes un token de larga duración, que se trata específicamente en nuestra documentación sobre tokens de acceso.

Volver a verificar los tokens de acceso

Por lo general, una app debe confirmar que la misma persona que la inició sea la que respondió en el cuadro de diálogo de inicio de sesión. Si utilizas el SDK para JavaScript de Facebook, este realiza automáticamente estos controles, por lo que no se necesita hacer nada, en tanto solo hagas llamadas desde el navegador.

Si decides enviarlo de vuelta al servidor, debes asegurarte de volver a verificar el token de acceso una vez que llegue al servidor. En la documentación sobre crear un proceso de inicio de sesión de forma manual, puedes encontrar información acerca de cómo volver a verificar el token. Es necesario que verifiques que el app_id y el user_id coincidan con lo que esperabas del punto de conexión de depuración del token de acceso.

Realizar llamadas a la API

En este momento del proceso, la persona ya está autenticada e inició sesión. Tu app está ya lista para hacer las llamadas a la API en su nombre desde el navegador. En el navegador, la forma más simple de hacerlo es con la llamada FB.api(). FB.api() agregará de manera automática el token de acceso a la llamada.

Este código:

FB.api('/me', function(response) {
    console.log(JSON.stringify(response));
});

Devolverá una matriz con el identificador y el nombre:

{
  "id":"101540562372987329832845483",
  "name":"Bob Smith"
}

Si realizas llamadas del servidor con el token de acceso, puedes usar un SDK en el servidor para hacer llamadas similares. Mucha gente utiliza PHP para crear aplicaciones web. Puedes encontrar algunos ejemplos de cómo realizar llamadas a la API del servidor en nuestra documentación de SDK para PHP.

Detectar cuándo las personas desinstalan apps

Las personas pueden desinstalar las apps a través de Facebook.com sin necesidad de interactuar con la propia app. Para ayudar a que las apps detecten cuándo sucedió esto, les permitimos proporcionar una URL de devolución de llamada para autorizaciones canceladas, que enviará una notificación en el momento en que esto suceda.

Puedes activar una devolución de llamada a través del panel de apps.