
Oggi voglio farti un regalo che spero apprezzerai: ho deciso di condividere la Classe PHP che uso per sviluppare le mie Applicazioni Facebook.
Grazie ad essa potrai creare un’App in pochissimo tempo, perchè contiene già tutta la struttura necessaria per il login e le chiamate API.
La Classe utilizza le nuove Graph API ed è pensata per le Applicazioni IFrame, visto che pare che Facebook stia spingendo in quella direzione, rendendo deprecate quelle FBML.
Ma vediamo ora come installare e configurare il tutto.
1. Crea l’Applicazione
Questo è un passo che ho già spiegato decine di volte, ma lo ripeto nuovamente per completezza:
- Vai alla pagina di creazione dell’applicazione.
- Inserisci il nome e accetta le condizioni. Quindi procedi.
- Vai sul tab “Web Site”.
- Inserisci la “Site URL”, ovvero l’URL del dominio principale (es: http://www.miosito.it/).
- Clicca sul tab “Facebook Integration”.
- Inserisci la “Canvas Page”, che sarà l’indirizzo della tua App.
- Inserisci la “Canvas URL”, ovvero l’URL della cartella sul tuo server (es: http://www.miosito.it/facebookapp/).
- Assicurati che “Canvas Type” sia IFrame.
- Imposta “Dimensione dell’IFrame” su “Auto-resize”.
- Salva le modifiche.
2. Scarica la Classe
Scarica lo zip che contiene la Classe ed il resto dell’ambiente di sviluppo da me strutturato:
Facebook Graph API Class 1.2 (11,5 KiB) - scaricato 2.632 volte
Scompatta lo zip e uploada i file sul tuo server.
3. Configura l’Applicazione
Il file config.php permette la configurazione di tutti i parametri necessari al funzionamento:
APP_ID: l’ID della tua Applicazione.API_KEY: la “Chiave API”.SECRET: il valore di “Applicazione nascosta”.APP_NAME: il nome della tua App.URL: l’indirizzo pubblico della tua applicazione (ovvero la “Canvas Page”).MY_URL: l’indirizzo della cartella sul tuo server (la “Canvas URL”).
A questo punto non ti resta che uploadare il file config.php sul server ed andare sulla tua Applicazione!
4. Com’è strutturato l’ambiente
I file che troverai nello zip sono:
commons.php: questo file va incluso in ogni pagina della tua Applicazione. Si occupa di importare tutte le librerie e di instanziare l’oggetto Facebook.config.php: abbiamo già visto che permette di configurare i parametri.index.php: è la home della tua App. In questo caso fa delle chiamate per dimostrare il funzionamento della Classe.header.php: è l’intestazione della pagina. Contiene l’instanziazione dell’oggetto Facebook lato client.footer.php: il footer delle pagine. Puoi personalizzarlo come preferisci, ad esempio con i tuoi credits.style.css: il foglio di stile.lib/facebook.php: la più recente versione della nuova PHP SDK.lib/FB.class.php: la mia classe, che ora vedremo nel dettaglio.
5. Come utilizzare la Classe
Basta guardare l’esempio per capire come utilizzarla, ma vediamo comunque insieme i metodi base.
Instanziare la Classe
La seguente riga di codice crea l’oggetto Facebook e gestisce da sola tutta la procedura di autenticazione. E’ possibile passare come parametro una stringa contenente i permessi che si desidera richiedere all’utente in fase di accesso all’Applicazione.
Ottenere l’ID dell’utente
Ottenere informazioni sull’Utente
Se non si passa alcun parametro, verrà restituito un array con le info dell’utente corrente:
Altrimenti possiamo richiedere le info su un utente specifico:
Ottenere la lista degli amici
Se gli passimo un attributo, quello sarà il limite massimo di amici da restituire.
Verificare se un utente è Fan di una Pagina
echo "Sei fan";
}
Aggiornare lo stato
Se inserisci solo il messaggio, verrà pubblicato sulla tua Bacheca:
Altrimenti puoi impostare l’ID dell’utente o Pagina su cui postare:
Pubblicare un allegato in Bacheca
"http://www.bigthink.it/classe-php-applicazioni-facebook-graph-api",
"Interessante!",
"http://www.bigthink.it/images/thumb.jpg");
Queste sono solo alcune delle funzionalità che Facebook mette a disposizione degli sviluppatori. Ovviamente puoi aggiungere ulteriori metodi, in base alle tue esigenze.
6. Un Fix per Internet Explorer
La mia prima Applicazione creata con questa Classe andava perfettamente se aperta con Firefox, ma con IE dava un sacco di problemi. Continuava a fare redirect assurdi tra una pagina e l’altra.
Cercando online ho poi scoperto che era un problema di Cookies: trovandosi all’interno di un IFrame, i Cookies di Facebook non venivano salvati, non permettendo così il salvataggio della Sessione.
La soluzione è molto semplice, basta inserire questa linea di codice in testa a tutte le Pagine della tua App:
Se hai scaricato il mio ambiente di sviluppo, la trovi già inserita nel file commons.php, che va comunque incluso in tutte le pagine.
Per approfondimenti ti rimando a questi articoli, ai quali mi sono ispirato per la creazione della Classe:
- Graph API & IFrame Base Facebook Application Development
- Increase facebook iframe app’s performance
- PHP SDK & Graph API base Facebook Connect Tutorial
UPDATE 22/9/2010
- Ho aggiornato l’articolo, sistemando secondo la nuova interfaccia di creazione dell’Applicazione.
- Ho aggiornato la classe alla versione 1.1, sistemando alcune piccole cose e sostituendo la vecchia SDK con la nuova versione.
UPDATE 27/11/2010
- Aggiornato la classe alla versione 1.2: aggiunto parametro “next” e corretto un piccolo errore.




Ciao, ottimo lavoro.
Per caso in tutti questi mesi c’e’ una versione con piu’ funzioni? Per esempio mi interessava postare su pagine da fan. Come dovrei fare?
Grazie
Ricevo il seguente errore
To fix this error, please set your Canvas Callback URL in the application settings editor. Once it has been set, users will be redirect to that URL instead of this page after logging in.
Come faccio a dare una Canvas Callback?
Ciao Ghido,
grazie per questa preziosa guida,
ti chiedo aiuto per un piccolo problema, testando la funzione “$fb->updateStatus(“Studio le Graph API”);” (aggiungendola al file index.php) capita che la bacheca dell’utente si riempie di post, cioè ne viene pubblicato uno ogni 4-5 secondi. Come posso risolvere? grazie
ciao
Ciao! ho provato ad installare ieri l’applicazione di prova…..
all’inizio tutto ok….
Senza modificare nulla, ma solo cambiando il nome dell’applicazione e la cartella dove è salvata sul mio sito, accade questo:
Prime due informazioni:
Name: ora si vede “YOU” ( e quindi non il mio nome)
Email: VUOTO
sapresti dirmi il motivo?
grazie.
ulteriore domanda….se io volessi aggiungere anche la foto degli amici nella “stampa” dell’array….come potrei fare?
Ho utilizzato la tua classe per fare la mia applicazione. Serve per cercare i link postati su facebook http://apps.facebook.com/thelinkfinder cosa ne pensi?
Salve ragazzi,
ho configurato tutto con i miei dati della app, ma mi da qwesto errore :
Parse error: syntax error, unexpected ‘{‘ in /membri/geistad/facebook/myapp/commons.php on line 9
any ideas?
Capita anche a me la storia del refresh con le vecchie applicazione sviluppate con la versione 1.0. Adesso ho scaricato quella nuova, sostituito i file e configurato tutto perfettamente ma non va, anche cambiando togliendo gli / sia in URL che in MY_URL. Qualcuno ha trovato il modo di risolvere?
Ho trovato il modo. Basta cambiare ed aggiungere un permesso che l’app deve richiedere e si risolve il problema!
che permesso bisogna chiedere puoi postare il pezzo di codice da modificare?
Ciao, ho seguito le tue istruzioni e ho impostato il config.php con i miei dati, l’unico problema è che quando clicco sul pulsante del login mi fa uscire solo un icona di facebook e un indirizzo a facebook, ma niente di tutto ciò che sta nell’index.php, come mai?
javier
Ciao Ghido,
Vorrei chiederti un consiglio. Se volessi inserire un bottone per invitare gli amici, come devo procedere?
(naturalmente non ti sto chiedendo tutto il codice, solo qualche indizio, cosa devo studiarmi) Grazie
per il problema con IE và bene anche così?