Rückruf zur Datenlöschungsanfrage

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:

  • Einen Rückruf zur Datenlöschungsanfrage implementieren.
  • App-Nutzern eine URL mit expliziten Anweisungen bereitstellen, wie sie ihre Daten über eine Website oder ein Tool von Drittanbietern löschen können. Die Website von Drittanbietern kann der relevante Abschnitt in der Datenschutzrichtlinie der Anwendung sein.

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).

Implementieren des Rückrufs

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:

  • Die Löschung aller Daten initiieren, die deine App von Facebook über den Nutzer erhalten hat.
  • Eine JSON-Antwort zurückgeben, die eine URL enthält, unter der der Nutzer den Status seiner Löschungsanforderung prüfen kann, sowie einen alphanumerischen Bestätigungscode. Die JSON-Antwort hat das folgende Format:
    { 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.

Testen deines Rückrufs

So testest du deinen Rückruf:

  1. Melde dich mit Facebook Login bei deiner App an.
  2. Navigiere in deinem Facebook-Profil in den Einstellungen zum Tab Apps und Websites: https://www.facebook.com/settings?tab=applications
  3. Entferne deine App.
  4. Klicke auf den Link Entfernte Apps und Websites ansehen.
  5. Klicke im Pop-up rechts neben der Anwendung auf den Button Ansehen.
  6. Klicke im aufgerufenen Fenster auf Anfrage senden, um deinen Rückruf auszulösen.