Advertisement

Facebook Developer Garage Venice 2 parte

Angelo Iacubino
Oct. 27, 2009
Advertisement

More Related Content

Advertisement

Facebook Developer Garage Venice 2 parte

  1. Programmazione avanzata di Facebook Angelo Iacubino Dipartimento Informatica - Università dell’Insubria - Como www.disinformatica.com email: webmaster@disinformatica.com www.facebook.com/disinformatica Roberto Marmo Facoltà di Ingegneria Università di Pavia, Facoltà di Scienze MM.FF.NN. Università dellʼInsubria-Como www.robertomarmo.net email: info@robertomarmo.net www.facebook.com/robertomarmo
  2. Application Programming Interfaces ▪ metodologia standard di chiamate alle funzioni ▪ PHP come linguaggio ufficialmente supportato ▪ Client Library
  3. Come effettuare le chiamate alle funzioni di FB
  4. Un primo esempio.....
  5. 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”
  6. 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>";
  7. groups.getMembers
  8. users.getInfo
  9. friends.getAppUsers
  10. SQL vs FQL
  11. Alcuni esempi...
  12. Alcuni esempi...(2): tabelle di FB
  13. indexable field
  14. FQL
  15. FQL
  16. FQL
  17. FQL
  18. FQL
  19. Oltre il PHP...
  20. Oltre il PHP...
  21. 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.
  22. Tempi di attesa e Server Tuning (2)
  23. Tempi di attesa e Server Tuning (3)
  24. Tempi di attesa e Server Tuning (4)
  25. La Conoscenza (1)
  26. La Conoscenza (2)
  27. La Conoscenza (3)
  28. Grazie per l’attenzione Domande? Angelo Iacubino www.disinformatica.com webmaster@disinformatica.com www.facebook.com/disinformatica Roberto Marmo www.robertomarmo.net info@robertomarmo.net www.facebook.com/robertomarmo
  29. (c) 2009 Facebook, Inc. or its licensors.  "Facebook" is a registered trademark of Facebook, Inc.. All rights reserved. 1.0
Advertisement