Devolución de llamada para solicitudes de eliminación de datos

Las apps que tengan acceso a los datos de los usuarios deberán proporcionar una forma para que los usuarios puedan solicitar que se eliminen sus datos. La app puede cumplir con este requisito de alguna de las siguientes dos maneras:

  • Implementar una devolución de llamada para solicitudes de eliminación de datos.
  • Proporcionar una URL con instrucciones explícitas para los usuarios sobre cómo eliminar sus datos a través de un sitio web o una herramienta de terceros. El sitio web de terceros puede ser la sección relevante de la Política de privacidad de la app.

Se llama a la devolución de llamada de eliminación de datos cuando un usuario de la app elimina tu app o el acceso a los datos que se comparten con tu app, como la dirección de correo electrónico, en la configuración de la cuenta de Facebook.

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

En respuesta a la solicitud del usuario, debes reconocer haber recibido una solicitud de eliminación de datos de usuario a través de los medios técnicos que proporcionamos, y responder con un enlace y un número de confirmación. El enlace y el número de confirmación deben permitir que el usuario acceda a una explicación legible del estado de su solicitud, incluida una justificación legítima de cualquier negativa a proceder con la eliminación (la legitimidad variará según la jurisdicción y la interpretación caso por caso de nuestra política que haremos con relación a los motivos esgrimidos).

Implementar la devolución de 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 seguro HTTPS y debe estar incluida en el campo URL de la solicitud de eliminación de datos de "Configuración" en el panel de apps.

Al implementar la devolución de llamada para solicitudes de eliminación de datos, se debe lograr lo siguiente:

  • Iniciar la eliminación de todos los datos que la app haya extraído de Facebook sobre ese usuario.
  • Devolver una respuesta JSON que contenga una URL donde el usuario pueda verificar el estado de la solicitud de eliminación y un código de confirmación alfanumérico. La respuesta JSON tiene el siguiente formato:
    { url: '<url>', confirmation_code: '<code>' }

Si no se cumplen estos requisitos, es posible que se elimine la devolución de llamada o se deshabilite la app.

Puedes implementar esta devolución de llamada en cualquier lenguaje, pero el siguiente código es un ejemplo de 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, '-_', '+/'));
}
?>

Esto produce un objeto JSON que tiene el siguiente aspecto, donde user_id es el campo relevante para la devolución de llamada.

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

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

Probar la devolución de llamada

Para probar la devolución de llamada:

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