valora saber responder respeta que presiona miedo jefe hacer hablar estas esta empleada decirle cuando contigo contento con compaƱero como acuerdo php facebook

php - saber - cuando tu jefe no te respeta como empleada



El usuario de Facebook desautoriza la aplicaciĆ³n (2)

cuando el usuario acepta la aplicación de Facebook desde mi sitio web, estoy almacenando los detalles del usuario y los detalles de Facebook (token de acceso) en la base de datos.

cuando retire mi aplicación de Facebook, quiero eliminar los detalles de la base de datos. ¿como hacer esto?

Puedo dar de desautorizar la URL de devolución de llamada. si alguien elimina la aplicación, se redireccionará a esta página. pero, ¿debería ser el código aquí para eliminar los datos de db? Quiero decir, cuando redirija, publicará los detalles del token de acceso, para que pueda cargar el token de acceso y eliminar esa fila.


Está claramente establecido en el documento de autenticación :

Desautorización de la aplicación

Cuando un usuario de su aplicación lo elimina en el Tablero de aplicaciones o bloquea la aplicación en el Canal de noticias, se puede notificar a su aplicación especificando una Deauthorización de la 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 la identificación del usuario (UID) del usuario que acaba de eliminar su aplicación. No recibirá un token de acceso de usuario en esta solicitud y todos los tokens de acceso de usuario existentes caducarán automáticamente.

Entonces, usando la función signed_request en su propio documento:

<?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); ?>

Entonces, todo lo que necesita hacer es obtener la consulta $result["user_id"] su base de datos y eliminar el registro.

PD: recomendaría agregar un nuevo campo llamado active y simplemente desactivar al usuario en lugar de eliminar el registro todos juntos.

EDITAR:
¡Facebook NO redirigirá al usuario a la desautorización de la URL! solo hará ping:

Facebook hace ping a esta URL cuando un usuario desautoriza tu aplicación


Este código no funciona, aunque se llama cuando un usuario desautoriza la aplicación, los únicos datos que pasan a la función son "1" (Probado con usuario de prueba y mi propia cuenta de FB cuando la aplicación está activa)

file_put_contents ("test.txt", $ fbUserId. "". print_r ($ _ REQUEST [''signed_request'']));

en el archivo test.txt "1"