Appunti, scoperte e invenzioni

Tutto quello che mi viene in mente (se permettete l’esagerazione…)

  • Universal Declaration of Human Rights

    Article 19. Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers.
  • My Last Twits

    • google wavin'!!! 1 month ago
    • chi è così buono da spedirmi un invito per la beta di Google Wave a mario.piccinelli@gmail.com? 1 month ago
    • perde tempo su internet.. la tesi aspetterà.. bah 1 month ago
    • Noemi Letizia premiata per il suo ruolo nel film Scaccomatto: è la preferita di un boss mafioso. Esattamente come nel film. (spinoza.it) :-) 2 months ago
    • I have sailed the world and seen his wonders, from the Dardinels to the mountains of Peru, but there's no place like.. Lovere! 3 months ago
  • Meta

  • Delicious Links

  •  

    Giugno: 2009
    L M M G V S D
    « Mag   Lug »
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • Archivi

  • Disclaimer

    Questo blog non rappresenta una testata giornalistica [...]

    L’autore del blog dichiara di non essere responsabile per i commenti inseriti dai lettori.[...]

    Le immagini pubblicate sono quasi tutte tratte da internet e quindi valutate di pubblico dominio. [...]

    L'autore declina qualunque responsabilità per danni a cose o persone derivanti dall'applicazione di istruzioni apprese da questo blog.[...]

    Per ulteriori info legali vi consiglio di passare da qui.

Creare un’applicazione per Facebook: le basi

Pubblicato da piccimario su Giugno 8, 2009

Tutti usano Facebook (o almeno quasi), ma molti meno sono quelli che ne conoscono le reali potenzialità. Facebook non è solo un modo per scrivere cazzate o chiedere l’amicizia a centinaia di persone che neanche saluterei se le vedessi per strada, ma anche e soprattutto una vera e propria piattaforma di sviluppo per applicazioni sociali web based. Spinto dalla curiosità ho voluto cimentarmi nell’impresa di creare una semplice applicazione, e ho scoperto che, a parte i primi attimi di smarrimento, in realtà è semplice come bere un bicchier d’acqua (beh, a patto di conoscere un pò bene php, html e magari pure sql).

Il primo passo è installare sul proprio account fb (beh, si, ovviamente bisogna avere un account!) l’applicazione Developer (se avete l’account in lingua italiana si chiamerà “Sviluppatore”). La trovate all’indirizzo: http://www.facebook.com/developers/. Installatela, accettate le richieste ed è fatta.

A questo punto, accedendo all’applicazione (mediante l’indirizzo visto sopra o il pulsante che sarà apparso nel vostro menu di fb) troveremo in alto a destra il pulsante “Set Up New Application”, che ovviamente andrà premuto.

set-up-new-application-png

A questo punto comparirà la finestra di creazione dell’applicazione, in cui si chiede semplicemente di inserire il nome e accettare le licenze. A questo punto l’applicazione è nata, anche se per il momento solo in modo virtuale. Ci troviamo di fronte a una finestra in cui dobbiamo cominciare a configurare i parametri base della nostra creatura.

Le informazioni più importanti che abbiamo a disposizione in questa finestra sono la chiave segreta dell’applicazione (che, ovviamente, dovrà essere mantenuta segreta e servirà ad autenticare le transazioni tra l’applicazione e gli sviluppatori accreditati) e la chiave API, quella che dovrà essere usata per le chiamate alle API di facebook.

fb-application-keys

Accantoniamo un attimo questa bella pagina e soffermiamoci un attimo su un problema: abbiamo bisogno di un hosting che ospiti i files (e i database, se necessario) della nostra applicazione. L’hosting deve essere gratuito (cioè, non è obbligatorio, ma è sempre meglio :-) ), deve avere un database a disposizione (se richiesto dall’applicazione) e supportare il php5. Io mi sono iscritto a Joyent, che fornisce account gratuiti di prova progettati appositamente per hostare applicazioni per facebook; credo che per applicazioni non particolarmente massicce qualunque account gratuito possa andare bene.

Se come me volete usare Joyent, non dovete fare altro che andare qui, premere “sign up for a free facebook accelerator” in alto a destra, inserire un pò di dati (verà richiesto anche il codice API che abbiamo visto prima) e aspettare la mail con nome utente e password (si, il nome utente ve lo assegnano loro a random, ma tanto non apparirà scritto da nessuna parte all’utente della vostra applicazione quindi no problem).

Torniamo alla finestra di prima (quella dell’applicazione) e inseriamo ii dati sull’hosting: apriamo la sezione “Modelli” e compiliamo i primi due campi:

  • Canvas Page Url: l’url interno a facebook al quale ci si dovrà riferire per aprire la nostra applicazione, sotto forma di “apps.facebook.com/NOME”. Di solito coincide con il nome dell’applicazione o una sua versione abbreviata.
  • Canvas Callback Url: l’url vero e proprio della nostra applicazione, o meglio del server sul quale è hostata. Qualcosa del tipo “http://NOMEUTENTEJOYENT.facebook.joyent.us”.

A questo punto possiamo premere il pulsante “Salva impostazioni” in basso. Dovremmo tornare all’elenco delle nostre applicazioni. In fondo alla pagina vedrete un link “Example Code”:

fb-get-sample-code

Cliccandolo si aprirà un popup con del codice di esempio, un ottimo modo per iniziare a scriver un’applicazione (sono già predisposte le inizializzazioni degli oggetti per la chiamata alle api). Copiamo questo codice e incolliamolo in un file “index.php”.

Come ultima cosa ci dovremo procurare alcuni files di libreria che sono necessari al nostro codice php per interagire con facebook. Nella stessa pagina in cui ci trovavamo poc’anzi c’è un link “Scarica Libreria Client”. Scarichiamo il file e decomprimiamolo: avremo una serie di cartelle, di cui una si chiama “footprints” (contiene un’applicazione d’esempio) e un’altra “client”: i tre files contenuti in quest’ultima insieme al nostro index.php devono essere caricati sull’host, nella stessa cartella; se abbiamo un account Joyent la cartella da usare è “~/web/public”. Per caricare i files bisogna usare un client che supporti l’SFTP, e se siete uteiti mac vi consiglio l’ottimo Cyberduck (open source).

A questo punto, che ci crediate o no, la vostra applicazione è pronta a funzionare; il codice di prova mostra una semplice chiamata alle api di fb per visualizzare 25 amici della vostra lista, potete verificarlo voi stessi all’indirizzo http://apps.facebook.com/NOME (dove NOME è ovviamente il nome che avete inserito prima).

Bello, eh? Per ulteriori informazioni vi consiglio il sito ufficiale di supporto agli sviluppatori facebook, qui.

Nota promozionale: se vi è piaciuto il tutorial, andate a installare la mia prima applicazione, il Numerologicon. Attraverso un semplice script PHP e un pò di HTML colorato calcola alcuni vostri “numeri maestri” secondo i principi della numerologia e vi mostra un report, che potete poi anche pubblicare come box a fianco del vostro profilo! Si, lo so, non è nulla di eccezionale, ma è la mia prima applicazione e godrei un mondo nel vedere salire il “numero di utenti attivi”, senza contare il fatto che se otterrà un pò di notorietà sarò spronato a migliorarla e aggiungere informazioni e funzionalità aggiuntive, delle quali ovviamente parlerò su questo blog. Grazie! :-)

3 Risposte a “Creare un’applicazione per Facebook: le basi”

  1. Merlinox detto

    Molto interessante, o almeno mi sembra un ottimo inizio per invogliare allo sviluppo. Linguaggio obbligatoriamente PHP oppure basta qualsiasi linguaggio server side in grado di interfacciarsi con Web Service?

  2. piccimario detto

    il php5 è il primo tra quelli supportati ufficialmente.. in realtà esistono librerie di API non ufficiali per numerosi altri linguaggi di programmazione, puoi trovarle qui:
    http://wiki.developers.facebook.com/index.php/Client_Libraries

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>