Vai a: [ Contenuti ] [ Categorie ] [ Cerca ]

Integrare Facebook con le API: cancellazione applicazione

Integrare Facebook con le API: cancellazione applicazione


Quando un utente cancella la nostra applicazione da Facebook è possibile averne notifica così da poter avviare una serie di operazioni gestite da una pagina sul proprio sito (ad esempio inviare una email di notifica e così via).

La prima cosa da fare è entrare nelle impostazioni dell’applicazione e inserire una url di callback come da figura:

del_app_facebook

È fondamentale settare su “abilitato” il campo “Oauth 2.0 for Canvas” altrimenti la procedura non andrà a buon fine.

A questo punto, nel momento in cui l’utente cancella l’applicazione, Facebook richiama la pagina del nostro sito indicata precedentemente, inviando una POST REQUEST con un singolo parametro (signed_request) simile a:

1
vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0

Il parametro è codificato secondo un algoritmo specifico di Facebook e viene inviato via POST anziché via GET per questioni di sicurezza.

Dal parametro signed_request è possibile estrarre l’id utente che ha cancellato l’applicazione. Per fare questo bastano due funzioni fornite da Facebook:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
&lt?php
 
// chiave segreta dell'applicazione 
$conf['secret_key']		= "a314dc24dc4a45775e4efef5fa547151"; 
//chiamo la funzione 
$fb_data			= parse_signed_request($_REQUEST['signed_request'], $conf['secret_key']); 
// idutente 
$fb_userid   			= $fb_data['user_id']; 
 
function parse_signed_request($signed_request, $secret) { 
 
	list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
 
	// decode dei dati 
	$sig 		= base64_url_decode($encoded_sig); 
	$fb_data 	= json_decode(base64_url_decode($payload), true); 
 
	if (strtoupper($fb_data['algorithm']) !== 'HMAC-SHA256') { 
 
		error_log('Unknown algorithm. Expected HMAC-SHA256'); 
		return null; 
	} 
 
	// check della firma 
	$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); 
 
	if ($sig !== $expected_sig) { 
 
		error_log('Bad Signed JSON signature!'); 
		return null; 
	} 
 
	return $fb_data; 
} 
 
function base64_url_decode($input) { 
 
	return base64_decode(strtr($input, '-_', '+/')); 
}

A questo punto otteniamo la variablie $fb_userid da utilizzare per le nostre operazioni.

link sponsorizzati

Consiglialo su Facebook

Lascia un Commento

Iscriviti alle discussione senza commentare

Torna: [ Inizio ] [ Contenuti ] [ Categorie ] [ Cerca ]

Pagina renderizzata in soli 0,184 secondi dopo aver eseguito ben 53 query. Wordpress... prestazioni da urlo!