Amici & Eventi
un esempio con utilizzo della chiamata events_get consente di
ottenere i seguenti risultati:
• recupera la lista di amici dell’utente corrente;
• memorizza lo user_id del secondo amico della lista;
• cerca tutti gli eventi associati al suddetto user_id;
• visualizza la lista dei partecipanti al terzo evento presente nella
lista degli eventi, suddivisa per “partecipanti”, “insicuri” o “in
forse”
Amici & Eventi (2)
$eventi = $Facebook->api_client->events_get($secondoamico,
null,
null,
null, null);
echo
"<ul>";
$i =
1;
if
($eventi)
{
foreach
($eventi
as
$evento)
{
if
($i == 3)
$terzoevento=$evento['eid'];
echo
"<li>{$evento['name']}
- luogo {$evento['location']}</li>";
$i++; }
$i--; echo
"Questo
tuo
amico
ha
ben "
. $i
. " eventi!<br>";
$ev1
= $Facebook->api_client->events_get(null,
$terzoevento,
null,
null,
null);
echo
"Gli utenti
che partecipano al terzo evento con id " .
$terzoevento
. " e nome {$ev1[0]['name']}
sono:<br><br>";
$membri = $Facebook->api_client->events_getMembers($terzoevento);
echo
"<p>Attesi</p>"; echo
"<ul>";
if
($membri['attending'][0])
{
foreach ($membri['attending'] as $membro)
{
echo
"<li><fb:name
uid="$membro" useyou="false"
/></li>"; }
}
else
{ echo
"....non
ce
ne
sono"; }
echo
"</ul>"; echo
"<p>...
in
forse:</p>"; echo
"<ul>";
if
($membri['unsure'][0])
{
foreach ($membri['unsure'] as $membro)
{
echo
"<li><fb:name uid="$membro" useyou="false"
/></li>"; }
}
else
{ echo
....non
" ce
ne
sono"; }
echo
"</ul>"; echo
"<p>Insicuri:</p>"; echo
"<ul>";
if
($membri['not_replied'][0])
{
foreach
($membri['not_replied']
as
$membro)
{
echo
"<li><fb:name uid="$membro" useyou="false"
/></li>"; }
}
else
{ echo
....non
" ce
ne
sono"; }
echo
"</ul>";
}
else
{
echo
"<li>non
ci
sono
eventi
per
questo
tuo
amico</li>"; } echo
"</ul>";
Tempi di attesa e Server Tuning (1)
• ridurre il numero di chiamate al server usando FQL al posto di API;
• nel caso occorrano molte chiamate API allo stesso momento, usare metodi batch.run per
combinare al massimo 20 operazioni in una singola richiesta, come specificato nella wiki
ufficiale;
• usare canvas realizzati con FBML, visualizzati più velocemente delle pagine iframe;
• spostare pezzi di codice scritti in JavaScript o CSS in file esterni, da importare nella pagina
per velocizzarne il caricamento. la piattaforma memorizza i file alla prima occasione d’uso e li
conserva per richieste successive con un meccanismo chiamato cache;
• usare il tag fb:ref per pubblicare lo stesso codice FBML verso tantissimi profili senza dover
ripubblicare il codice per ogni utente. Come nel caso precedente, la piattaforma usa il
meccanismo di cache;
• friends.get restituisce lo user_id dell’utente attuale. In genere la funzione viene chiamata in
varie parti del codice; conviene invece chiamarla durante il processo iniziale di caricamento;
• dovendo caricare numerose immagini o righe di dati molto lunghe, conviene dividere le
informazioni in pagine successive più leggere;
• se si decide di usare AJAX per aggiornare il contenuto delle pagine senza doverle ricaricare
per intero, limitare l’azione di aggiornamento solo a porzioni piccole della pagina.