資料刪除要求回呼

需要存取用戶資料的應用程式必須提供方法,讓用戶能要求刪除其資料。您的應用程式可用下列兩種方法其中之一來滿足此要求:

  • 實作資料刪除要求回呼。
  • 提供包含明確指示的網址,讓應用程式用戶瞭解如何透過第三方網站或工具來刪除資料。第三方網站可能是應用程式隱私政策中的相關部分。

每當應用程式用戶在其 Facebook 帳號設定中移除您的應用程式或移除與您的應用程式分享的資料(例如電子郵件地址)存取權限時,系統就會呼叫資料刪除回呼。

這會產生 POST,其中包含簽署要求,此要求將傳送給您的應用程式。簽署要求包含應用程式範圍編號,可用來辨識發出要求的用戶。關於剖析要求的方法和剖析要求的架構,如需範例請參閱下列段落。

為了回應用戶要求,您應透過我們所提供的技術方法,確認收到用戶資料刪除要求,並提供連結和確認編號。連結和確認編號必須能讓用戶存取人類易讀的說明內容,以瞭解其要求的狀態,內容中包含任何拒絕刪除的正當理由(根據司法管轄權和我們基於陳述的理由,逐案對政策的不同解釋,正當的理由將會有所不同)。

實作回呼

若要剖析和回應要求,您應實作「資料刪除要求」回呼。回呼必須使用安全的 HTTPS 通訊協定,而且在應用程式主控板的設定中,回呼必須列在資料刪除要求網址欄位中。

您實作的資料刪除要求回呼必須執行下列動作:

  • 啟動刪除作業,刪除您的應用程式從 Facebook 取得的用戶資料。
  • 傳回 JSON 回應,其中包含網址,用戶可以透過此網址來查看其刪除要求的狀態和英數確認碼。JSON 回應採用下列格式:
    { url: '<url>', confirmation_code: '<code>' }

如果未能遵守這些要求,回呼可能會遭到移除,或是應用程式可能會遭到停用。

您可以使用任何語言來實作此回呼,下列程式碼提供以 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, '-_', '+/'));
}
?>

這會產生類似於此的 JSON 物件,其中 user_id 是回呼的相關欄位。

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

如需關於簽署要求的詳細資訊,請參閱 Facebook 遊戲平台登入主題中的使用簽署要求

測試您的回呼

若要測試您的回呼:

  1. 透過「Facebook 登入」功能登入您的應用程式。
  2. 進入您 Facebook 個人檔案的應用程式和網站設定頁籤:https://www.facebook.com/settings?tab=applications
  3. 移除您的應用程式。
  4. 點擊檢視已移除的應用程式和網站連結。
  5. 在彈出式通知中,點擊應用程式右側的「檢視」按鈕。
  6. 在出現的視窗中,點擊傳送要求來觸發回呼。