Está claramente establecido en la authentication document:
App desautorización
Cuando un usuario de la aplicación elimina en la App tablero de instrumentos o bloquea la aplicación en el News Feed, su aplicación puede ser notificada especificando una desautorización de URL de devolución de llamada en la aplicación de desarrollador. Durante la eliminación de la aplicación enviaremos una solicitud HTTP POST que contiene un único parámetro , signed_request, que contiene el ID de usuario (UID) del usuario que acaba de eliminar su aplicación. Va a no recibir un token de acceso de usuario en esta solicitud y todos los tokens de acceso de usuario existentes serán automáticamente caducados.
Así, utilizando la función signed_request
en su propia docuement:
<?php
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$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, '-_', '+/'));
}
$result = parse_signed_request($_REQUEST['signed_request'],"APP_SECRET");
$myFile = "deauthorize.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $result["user_id"] . "\n");
fclose($fh);
?>
Así que todo lo que tiene que hacer es conseguir la $result["user_id"]
consulta su base de datos y eliminar el registro.
P.S: Yo recomendaría agregar un nuevo campo llamado active
y simplemente desactivar al usuario en lugar de eliminar el registro todos juntos.
EDIT:
Facebook no va a redirigir al usuario a la URL Retirar autorización! que va a hacer ping a tan sólo:
pings de Facebook esta URL cuando un usuario deauthorizes su aplicación
No tomaría más tiempo averiguarlo que escribir aquí la pregunta. Cree una página que envíe por correo electrónico los contenidos de $ _REQUEST/$ _ GET/$ _ POST. Haz que tu URL de devolución de llamada. Autoriza y luego desautorizate a ti mismo. Verifique el correo electrónico y sabrá exactamente qué datos tiene disponibles. –