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:
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).
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:
{ 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.
Para probar la llamada: