需要存取用戶資料的應用程式必須提供方法,讓用戶能要求刪除其資料。依據 Meta 的《開放平台使用條款》,所有應用程式必須在隱私政策中告知用戶如何要求刪除其資料。此外,應用程式可實作資料刪除要求回呼,以下將詳細介紹。
每當應用程式用戶在其 Facebook 帳號設定中移除您的應用程式或移除與您的應用程式分享的資料(例如電子郵件地址)存取權限時,系統就會呼叫資料刪除回呼。
這會產生 POST,其中包含簽署要求,此要求將傳送給您的應用程式。簽署要求包含應用程式範圍編號,可用來辨識發出要求的用戶。關於剖析要求的方法和剖析要求的架構,如需範例請參閱下列段落。
為了回應用戶要求,您應透過我們所提供的技術方法,確認收到用戶資料刪除要求,並提供連結和確認編號。連結和確認編號必須能讓用戶存取人類易讀的說明內容,以瞭解其要求的狀態,內容中包含任何拒絕刪除的正當理由(根據司法管轄權和我們基於陳述的理由,逐案對政策的不同解釋,正當的理由將會有所不同)。
若要剖析和回應要求,您應實作「資料刪除要求」回呼。回呼必須使用安全的 HTTPS 通訊協定,而且在應用程式主控板的設定中,回呼必須列在資料刪除要求網址欄位中。
您實作的資料刪除要求回呼必須執行下列動作:
{ 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 遊戲平台登入主題中的使用簽署要求。
若要測試您的回呼:
問題:我為何收到此通知?這是垃圾郵件嗎?
回答:這不是垃圾郵件。您之所以收到此通知,是因為您的應用程式用戶要求刪除其資料。請立即採取行動,刪除記錄中所有與要求的編號相關的用戶資料。用戶資料刪除要求依據適用的隱私權法,因此 Meta 希望您立即處理此問題。
問題:我多久會收到此通知?
回答:您每隔 21 天會收到一則提醒,包括您必須刪除的用戶識別碼(您可以在應用程式進階設定頁面中下載)。
問題:我如何存取需要刪除的編號清單?
回答:您可以在應用程式主控板進階設定頁面的「用戶資料刪除要求」下存取這些清單。
問題:我們的登錄資料中沒有這些用戶編號,該怎麼辦?
回答:您可以忽略目前未出現在資料庫中的用戶編號。
問題:要求進行刪除的用戶是誰?
回答:這些是已要求刪除其資料的用戶。您可以在從開發人員主控板下載的清單中找到目前的用戶編號。
問題:如果我不刪除資料,我的應用程式是否有遭刪除或停用的風險?
回答:不採取行動不會導致停用;但是,我們要求開發人員在用戶提出要求時,立即刪除用戶資料。
問題:在採取行動之前,我有多少前置時間?
回答:我們要求您立即採取行動刪除這些用戶編號。
問題:我必須提交刪除證明嗎?
回答:不,您不需要提交刪除證明。
問題:什麼是應用程式範圍用戶編號?
回答:應用程式範圍用戶編號(ASID)是當用戶首次登入 Facebook 應用程式或使用「限制登入」時,Facebook 為其建立的不重複編號。ASID 為應用程式專屬,其他應用程式無法使用。
問題:什麼是粉絲專頁範圍用戶編號?
回答:粉絲專頁範圍用戶編號(PSID)是當用戶透過 Messenger 與 Facebook 粉絲專頁互動時,Facebook 指派給用戶的不重複編號。
問題:什麼是即時遊戲玩家編號?
回答:即時遊戲 SDK 針對每個用戶所發佈的編號,作為不重複的識別碼。請注意,即使是同一個應用程式的同一用戶,即時遊戲玩家編號和 ASID 也是不同的。