Devolución de llamada de solicitud de eliminación de datos

Las aplicaciones que acceden a los datos del usuario deben ofrecer una opción para que los usuarios soliciten la eliminación de sus datos. Tu aplicación puede cumplir este requisito de dos formas:

  • Implementar una devolución de llamada de solicitud de eliminación de datos.
  • Proporcionar una URL con instrucciones explícitas para los usuarios de la aplicación sobre cómo eliminar los datos mediante un sitio web o herramienta de terceros. El sitio web de terceros puede ser la sección correspondiente de la Política de privacidad de la aplicación.

Una devolución de llamada de eliminación de datos se realiza cuando un usuario de la aplicación la elimina o elimina el acceso a los datos que se comparten con ella (como el correo electrónico) desde la sección Configuración de su cuenta de Facebook.

Esto genera un elemento POST con una solicitud firmada que se envía a la aplicación. La solicitud firmada contiene un identificador de usuario específico de la aplicación que identifica al usuario que realiza la solicitud. Para obtener un ejemplo de cómo analizar la solicitud y la estructura de la solicitud analizada, consulta la siguiente sección.

En respuesta a la solicitud de usuario, debes confirmar la recepción de la solicitud de eliminación de datos del usuario a través de los medios técnicos que ofrecemos y proporcionar un enlace y un número de confirmación. El enlace y el número de confirmación deben dar al usuario acceso a una explicación en lenguaje natural del estado de su solicitud, incluida una justificación legítima de cualquier negativa a eliminar los datos (la legitimidad puede variar en función de la jurisdicción y la interpretación por caso de nuestra política en relación con los motivos alegados).

Implementar la llamada

Para analizar la solicitud y responder a ella, debes implementar una devolución de llamada de “solicitud de eliminación de datos”. La devolución de llamada debe usar el protocolo HTTPS seguro y debe incluirse en el campo URL de solicitud de eliminación de datos en la sección Configuración del panel de aplicaciones.

La devolución de llamada de solicitud de eliminación de datos que implementes debe hacer lo siguiente:

  • Iniciar la eliminación de cualquier dato que tenga la aplicación de Facebook acerca del usuario.
  • Devolver una respuesta JSON que contenga una URL donde el usuario pueda comprobar el estado de la solicitud de eliminación y un código de confirmación alfanumérico. La respuesta JSON tiene el formato siguiente:
    { url: '<url>', confirmation_code: '<code>' }

Si no se cumplen estos requisitos, puede que se quite la llamada o que se deshabilite la aplicación.

Puedes implementar esta devolución de llamada en cualquier lenguaje. A continuación te mostramos un ejemplo de código de dicha devolución de llamada en PHP.

<?php
header('Content-Type: application/json');

$signed_request = $_POST['signed_request'];
$data = parse_signed_request($signed_request);
$user_id = $data['user_id'];

// Start data deletion

$status_url = 'https://www.<your_website>.com/deletion?id=abc123'; // URL to track the deletion
$confirmation_code = 'abc123'; // unique code for the deletion request

$data = array(
  'url' => $status_url,
  'confirmation_code' => $confirmation_code
);
echo json_encode($data);

function parse_signed_request($signed_request) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2);

  $secret = "appsecret"; // Use your app secret here

  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  // confirm the signature
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}
?>

Este ejemplo produce un objeto JSON que se parece al que se muestra a continuación, en el que el campo pertinente de la devolución de llamada es user_id.

{
   "algorithm": "HMAC-SHA256",
   "expires": 1291840400,
   "issued_at": 1291836800,
   "user_id": "218471"
}

Para obtener más información sobre las solicitudes firmadas, consulta Usar solicitudes firmadas en el tema Inicio de sesión para juegos en Facebook.

Probar la llamada

Para probar la llamada:

  1. Inicia sesión en la aplicación con el inicio de sesión con Facebook.
  2. Ve a la pestaña de configuración Aplicaciones y sitios web de tu perfil de Facebook: https://www.facebook.com/settings?tab=applications.
  3. Elimina la aplicación.
  4. Haz clic en el enlace Ver aplicaciones y sitios web eliminados.
  5. En la ventana emergente, haz clic en el botón Ver situado a la derecha de la aplicación.
  6. En la ventana que aparece, haz clic en Enviar solicitud para activar la devolución de llamada.