Apps, die auf Nutzerdaten zugreifen, müssen Nutzern eine Möglichkeit bieten, die Löschung ihrer Daten anzufragen. Dafür gibt es zwei Möglichkeiten:
Der Rückruf zur Datenlöschung wird immer dann aufgerufen, wenn ein*e App-Nutzer*in deine App entfernt oder den Zugriff auf seine*ihre Daten, die mit deiner App geteilt werden, wie z. B. seine*ihre E-Mail-Adresse, in den Einstellungen seines*ihres Facebook-Kontos.
Hierdurch wird ein BEITRAG mit einer signierten Anfrage generiert, der an deine App gesendet wird. Die signierte Anfrage beinhaltet eine App-spezifische ID, die den Nutzer identifiziert, der die Anfrage stellt. Im folgenden Abschnitt findest du ein Beispiel für die Vorgehensweise zur Analyse der Anfrage und die Struktur der analysierten Anfrage.
Als Reaktion auf die Nutzeranforderung solltest du bestätigen, dass eine Anforderung zur Löschung von Nutzerdaten mittels der von uns angebotenen technischen Möglichkeiten eingegangen ist, und einen Link und eine Bestätigungsnummer bereitstellen. Über den Link und die Bestätigungsnummer müssen Nutzer Zugriff auf eine für Menschen lesbare Erklärung des Status ihrer Anfrage erhalten, einschließlich einer rechtmäßigen Begründung aller Verweigerungen von Löschungen (wobei die Rechtmäßigkeit je nach Rechtsprechung und unserer fallbasierten Interpretation unserer Richtlinie im Zusammenhang mit den genannten Gründen unterschiedlich zu betrachten ist).
Zur Analyse und Beantwortung der Anfrage solltest du einen Rückruf zur Datenlöschungsanfrage implementieren. Dein Rückruf muss das sichere HTTPS-Protokoll verwenden und er muss im Feld URL für Datenlöschungsanfrage in den Einstellungen des App-Dashboards aufgelistet sein.
Der von dir implementierte Rückruf zur Datenlöschungsanfrage muss folgende Schritte ausführen:
{ url: '<url>', confirmation_code: '<code>' }
Werden diese Anforderungen nicht erfüllt, kann dies dazu führen, dass der Rückruf entfernt oder deine App deaktiviert wird.
Du kannst diesen Rückruf in einer beliebigen Sprache implementieren. Der folgende Code stellt ein Beispiel des Rückrufs in PHP dar.
<?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, '-_', '+/')); } ?>
Hierdurch wird ein JSON-Objekt erzeugt, das in etwa wie folgt aussieht und in dem user_id
das relevante Feld für deinen Rückruf ist.
{ "algorithm": "HMAC-SHA256", "expires": 1291840400, "issued_at": 1291836800, "user_id": "218471" }
Weitere Informationen zu signierten Anfragen findest du unter Verwenden einer signierten Anfrage im Thema Anmeldung für Spiele auf Facebook.
So testest du deinen Rückruf: