Retorno de chamada de solicitação de exclusão de dados

Os apps que acessam dados dos usuários devem permitir que eles solicitem a exclusão das próprias informações. Seu app pode atender a esse requisito de duas formas:

  • Implemente um retorno de chamada de solicitação de exclusão de dados.
  • Forneça uma URL com instruções explícitas para os usuários do app sobre como excluir os próprios dados usando um site ou uma ferramenta de terceiros. O site de terceiros pode ser a seção relevante na Política de Privacidade do aplicativo.

O retorno de chamada de exclusão de dados é acionado sempre que um usuário do app usar as configurações da conta do Facebook para remover o acesso do app aos próprios dados que estão sendo compartilhados (como endereço de email).

Isso gera uma POST com uma solicitação assinada que é enviada ao app. A solicitação assinada contém um ID no escopo do app identificando o usuário que fez a solicitação. Para obter um exemplo de como analisar a solicitação e ver a estrutura da solicitação analisada, consulte a próxima seção.

Em resposta ao usuário, você deve confirmar o recebimento da solicitação de exclusão de dados usando os meios técnicos que oferecemos, além de fornecer um link e um número de confirmação. O link e o número de confirmação devem oferecer ao usuário acesso a uma explicação legível por humanos do status da solicitação, incluindo uma justificativa legítima para a recusa da exclusão (a legitimidade variará com base na jurisdição e na nossa interpretação caso a caso da nossa política em relação aos motivos declarados).

Como implementar o retorno de chamada

Para analisar e responder à solicitação, você precisa implementar um retorno de chamada "solicitação de exclusão de dados". O retorno de chamada deve usar o protocolo seguro HTTPS e estar listado no campo URL de solicitação de exclusão de dados nas configurações no Painel de Apps.

O retorno de chamada de solicitação de exclusão de dados implementado por você deve executar as seguintes ações:

  • Iniciar a exclusão de dados sobre o usuário que seu app obteve do Facebook.
  • Retornar uma resposta JSON com uma URL em que o usuário possa verificar o status da solicitação de exclusão e um código de confirmação alfanumérico. A resposta JSON tem este formato:
    { url: '<url>', confirmation_code: '<code>' }

Não cumprir esses requisitos pode fazer com que seu retorno de chamado seja removido ou seu app seja desabilitado.

Você pode implementar esse retorno de chamada em qualquer linguagem, mas o código a seguir é um exemplo em 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, '-_', '+/'));
}
?>

Isso produz um objeto JSON parecido com este, em que user_id é o campo relevante para seu retorno de chamada.

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

Para saber mais sobre as solicitações assinadas, consulte Como usar uma solicitação assinada no tópico Login para Jogos no Facebook.

Teste do seu retorno de chamada

Para testar seu retorno de chamada:

  1. Entre no app com o Login do Facebook.
  2. Acesse a aba de configurações Apps e sites do seu perfil do Facebook – https://www.facebook.com/settings?tab=applications.
  3. Remova seu app.
  4. Clique no link Exibir apps e sites removidos.
  5. No pop-up, clique no botão Exibir à direita do aplicativo.
  6. Na janela, clique em Enviar solicitação para disparar seu retorno de chamada.