Les applications qui accèdent aux données utilisateur doivent proposer aux utilisateurs un moyen de demander la suppression de leurs données. Pour remplir ce critère, deux options s’offrent à votre application :
Le rappel de suppression de données est appelé lorsqu’un·e utilisateur·ice de votre application supprime cette dernière ou l’accès aux données qu’il ou elle partage avec votre application, son adresse e-mail par exemple, dans les paramètres de son compte Facebook.
Cela génère un appel POST avec une requête signée qui est envoyée à votre application. La demande signée contient un ID spécifique à une app identifiant l’utilisateur qui en est à l’origine. Pour consulter un exemple d’analyse de la requête et de la structure de la demande analysée, reportez-vous à la section suivante.
Dans la réponse à la demande de l’utilisateur, vous devez confirmer la réception de la demande de suppression des données utilisateur à l’aide des moyens techniques proposés, et fournir un lien ainsi qu’un numéro de confirmation. Le lien et le numéro de confirmation doivent permettre à l’utilisateur d’accéder à une explication compréhensible de l’état de sa demande, ce qui inclut une justification légitime de tout refus de suppression (le terme « légitime » varie suivant les juridictions et notre interprétation, au cas par cas, de notre politique en ce qui concerne les motifs énoncés).
Pour analyser la demande et y répondre, vous devez mettre en œuvre un rappel de « demande de suppression de données ». Votre rappel doit utiliser le protocole HTTPS sécurisé et figurer dans le champ URL de demande de suppression de données dans les paramètres de l’Espace App.
Le rappel de demande de suppression de données que vous mettez en œuvre doit effectuer les opérations suivantes :
{ url: '<url>', confirmation_code: '<code>' }
Le non-respect de ces exigences peut entraîner la suppression de votre rappel ou la désactivation de votre application.
Vous pouvez mettre en œuvre ce rappel dans n’importe quel langage. Cependant, le code suivant est un exemple au format 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, '-_', '+/')); } ?>
Cela produit un objet JSON présentant l’aspect suivant, où user_id
est le champ approprié pour votre rappel.
{ "algorithm": "HMAC-SHA256", "expires": 1291840400, "issued_at": 1291836800, "user_id": "218471" }
Pour plus d’informations sur les demandes signées, consultez la section Utilisation d’une demande signée de la rubrique Connexion pour les jeux sur Facebook.
Pour tester votre rappel :