這份文件已更新。
中文(台灣) 的翻譯尚未完成。
英文更新時間:1月2日

資料刪除要求回呼

需要存取用戶資料的應用程式必須提供方法,讓用戶能要求刪除其資料。依據 Meta 的《開放平台使用條款》,所有應用程式必須在隱私政策中告知用戶如何要求刪除其資料。此外,應用程式可實作資料刪除要求回呼,以下將詳細介紹。

每當應用程式用戶在其 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. 在出現的視窗中,點擊傳送要求來觸發回呼。

用戶資料刪除要求常見問題

問題:我為何收到此通知?這是垃圾郵件嗎?

回答:這不是垃圾郵件。您之所以收到此通知,是因為您的應用程式用戶要求刪除其資料。請立即採取行動,刪除記錄中所有與要求的編號相關的用戶資料。用戶資料刪除要求依據適用的隱私權法,因此 Meta 希望您立即處理此問題。

問題:我多久會收到此通知?

回答:您每隔 21 天會收到一則提醒,包括您必須刪除的用戶識別碼(您可以在應用程式進階設定頁面中下載)。

問題:我如何存取需要刪除的編號清單?

回答:您可以在應用程式主控板進階設定頁面的「用戶資料刪除要求」下存取這些清單。

問題:我們的登錄資料中沒有這些用戶編號,該怎麼辦?

回答:您可以忽略目前未出現在資料庫中的用戶編號。

問題:要求進行刪除的用戶是誰?

回答:這些是已要求刪除其資料的用戶。您可以在從開發人員主控板下載的清單中找到目前的用戶編號。

問題:如果我不刪除資料,我的應用程式是否有遭刪除或停用的風險?

回答:不採取行動不會導致停用;但是,我們要求開發人員在用戶提出要求時,立即刪除用戶資料。

問題:在採取行動之前,我有多少前置時間?

回答:我們要求您立即採取行動刪除這些用戶編號。

問題:我必須提交刪除證明嗎?

回答:不,您不需要提交刪除證明。

問題:什麼是應用程式範圍用戶編號?

回答:應用程式範圍用戶編號(ASID)是當用戶首次登入 Facebook 應用程式或使用「限制登入」時,Facebook 為其建立的不重複編號。ASID 為應用程式專屬,其他應用程式無法使用。

問題:什麼是粉絲專頁範圍用戶編號?

回答:粉絲專頁範圍用戶編號(PSID)是當用戶透過 Messenger 與 Facebook 粉絲專頁互動時,Facebook 指派給用戶的不重複編號。

問題:什麼是即時遊戲玩家編號?

回答:即時遊戲 SDK 針對每個用戶所發佈的編號,作為不重複的識別碼。請注意,即使是同一個應用程式的同一用戶,即時遊戲玩家編號和 ASID 也是不同的。