Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Sviluppare applicazioni per Facebook in PHP

Articolo scritto da Antonio Coschignano
Pagina 4 di 4

Un esempio completo

Per concludere vediamo un esempio completo di una semplice applicazione che ha lo scopo di mostrare l'amico più giovane di un utente Facebook.

(L'articolo continua più sotto...)

Registrate una nuova applicazione, scaricate la libreria e copiate lo script che vi propongo qui sotto nel file index.php presente nella root della cartella remota che avete indicato in fase di registrazione della nuova applicazione.

Il codice non è particolarmente complesso. Di seguito le operazioni che andremo a compiere:

Segue il codice commentato:
<?php
require 'php/facebook.php';
 //Le chiavi dell'applicazione
$apikey = 'xxxxxxxxxxxx';
$secret = 'xxxxxxxxxxxx';

//Autenticazione dello script per l'accesso alle API
$facebook = new Facebook($apikey, $secret);

//Autenticazione dell'utente
$user = $facebook->require_login();

//Query FQL
$query = "SELECT uid, first_name, last_name, birthday_date
FROM user WHERE uid IN (SELECT uid1 FROM friend WHERE uid2=".$user.")
ORDER BY  birthday_date";

//Esecuzione della Query
$result = $facebook->api_client->fql_query($query);

$array = array();
$count = 0;
//Estraggo l'uid di ogni amico e converto la data di nascita in timetsamp
//inserendolo in un array 'uid'->timestamp
foreach ($result as $item) {
    $data = explode("/", $item['birthday_date']);
    if(count($data)==3) {
        $time = mktime(0, 0, 0, $data[0], $data[1], $data[2]);
        $array[$item['uid']] = $time;
    }
}
//Trovo il max che corrisponde alla data di nascita del più giovane
$value = max($array);
//Estraggo l'uid
$friend = array_search($value, $array);
$time = time();
$eta = (date("Y", time()) - date("Y",$array[$friend]));

//Generiamo l'output utilizzando FBML e HTML
echo "<fb:header>Titolo dell'applicazione</fb:header>";
echo "
    <p>
        Ciao, <fb:name uid=\"{$user}\" useyou=\"false\" />!
    </p>
";
echo "
<fb:profile_pic uid=\"{$friend}\" useyou=\"false\" /><br>
    Con i suoi ".$eta." anni,
    <fb:name uid=\"{$friend}\" useyou=\"false\" /> è il/la tuo/a amico/a più giovane

";
?>
Preciso che molti utenti scelgono (nelle impostazioni per la privacy) di non visualizzare la data di nascita oppure inseriscono solo il mese o il giorno. Quindi è opportuno il controllo sul campo 'birthday_date':
...
$data = explode("/", $item['birthday_date']);
if(count($data)==3) {
...
}
...
al fine di prendere in considerazione solo le date complete.

Certamente si possono creare applicazioni più complesse che magari mantengono uno stato dell'utente memorizzando le azioni su un database proprio. Questo è un tipico caso di molti giochi che "mantengono in memoria" un punteggio per ogni utente.

Per approfondimenti su tutti gli argomenti trattati in questo articolo vi invito a consultare la documentazione ufficiale per lo sviluppatore Wiki Developers Facebook.

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122