La scheda Autenticazione si raggiunge subito dopo aver creato un'applicazione o facendo clic sul link Modifica impostazioni presente a destra nella pagina di presentazione dell'applicazione stessa.
La scheda Autenticazione è divisa in due aree. La prima riguarda le impostazioni di autenticazione vere e proprie, la seconda (molto più interessante) contiene gli indirizzi di callback post-aggiunta e post-rimozione della nostra applicazione.
La prima parte è molto essenziale e ci permette di scegliere su che profili è possibile far funzionare la nostra applicazione. Abbiamo due opzioni Utenti e Pagine Facebook.
La seconda parte, come scritto sopra, riguarda le callback, più precisamente potremmo disporre di una callback di post-autorizzazione e una di post-rimozione.
Tecnicamente, una callback, può essere vista come una funzione eseguita automaticamente al verificarsi di una determinata azione. Le azioni in questo caso sono compiute dall'utente e sono l'autorizzazione dell'applicazione e la rimozione della stessa. Al verificarsi di una di queste due azioni, Facebook invia una serie di parametri alla callback dedicata che ci forniranno informazioni su chi ha compiuto l'azione, che azione ha compiuto e a che ora. Tali informazioni possono poi essere gestite all'interno della callback come meglio crediamo. Tutto questo avviene in modo trasparente all'utente che non si renderà conto di quello che accade.
Supponiamo ad esempio di voler tener traccia di tutti coloro che autorizzano (o hanno autorizzato) la nostra applicazione. Creeremo una tabella utenti con due colonne: uid che conterrà l'identificativo utente di Facebook e attivo, un flag che sarà 1 se l'utente è iscritto alla nostra applicazione, 0 se non lo è.
La prima cosa da fare sarà creare la nostra callback post-autorizzazione, ecco come risulterà nel nostro caso:
<?php
$db = mysql_connect('nome_host', 'nome_utente', 'password');
mysql_select_db('nome_db', $db);
$query = "INSERT INTO `nome_db`.`utenti` (`uid`, `attivo`) VALUES ('".$_POST['fb_sig_user']."', '1');";
$result = mysql_query($query);
mysql_close($db);
?>
Come si può vedere, il codice non ha niente a che fare con le tecnologie di Facebook, è infatti del semplice codice PHP che esegue una connessione e una query su un database. L'unica cosa meritevole di nota è il parametro $_POST['fb_sig_user']
ed è uno dei parametri (di cui parlavamo prima) che Facebook invia automaticamente sotto forma di parametri POST alla nostra callback. Per l'esattezza, il parametro fb_sig_user è il parametro che contiene l'id utente che ha scatenato l'esecuzione della callback. Per avere una lista completa di tutti i parametri basterà consultare la documentazione ufficiale.
Salveremo le seguenti righe in un file post-autorizzazione.php, in una posizione qualunque sul nostro host, successivamente torneremo nella scheda Autenticazione e all'interno del campo Post-Authorize Callback URL inseriremo l'URL assoluto del file di callback (qualcosa del tipo http://www.miohost.it/miopercorso/post-autorizzazione.php) e salviamo. D'ora in poi ogni nuovo utente che autorizzerà la nostra applicazione avrà un record nel nostro database.
Per rendere veramente utili le informazioni che raccoglieremo, ci servirà anche una callback di post-rimozione. Vista la presenza del campo attivo all'interno del nostro database, sarebbe indicata una callback di post-rimozione che setti a 0 il campo attivo quando l'utente rimuove l'applicazione. Il codice in questo caso sarà identico a quello precedente, esclusa la query che eseguirà un UPDATE
invece che un INSERT
. Salveremo il tutto in un file chiamato post-rimozione.php e l'intero URL lo scriveremo nel campo 'Post-Remove Callback URL'.
Ovviamente con un approccio del genere la prima callback va modificata, inserendo un if che valuterà se l'utente che sta autorizzando l'applicazione lo fa per la prima volta o meno. Se è alla sua prima volta, allora si dovrà inserire un nuovo record, altrimenti, basterà riportare a 0 il suo campo attivo.
Nota: la normativa per la memorizzazione di dati sensibili è molto delicata e si consiglia di non fare un uso non consentito delle informazioni così raccolte.