Creare un'applicazione su Facebook scritta in PHP

Tutorial -> Facebook

Questo tutorial affronta in modo molto basilare il primo approccio alla programmazione all'interno di Facebook. Il social network più grande del web offre infatti la possibilità di realizzare delle applicazioni complete che possono interagire con le diverse funzionalità che sono disponibili. Le possibilità di sviluppo sono infinite: si può creare un'applicazione che esporta tutti i nostri "amici" in modo che si possa poi reimportati sulla nostra rubrica di Gmail, oppure creare con poche righe di codice una lista dei compleanni che stanno per arrivare;

Questo tutorial ci guiderà passo-passo attraverso la realizzazione della nostra prima applicazione scritta in codice php che interagisce con il mondo "social" di Facebook.
La documentazione esistente su Facebook è molto completa, ma quasi totalmente in lingua inglese (quando si è fortunati, altre volte si troavno delle traduzioni automatiche terrificanti) e non sempre risulta lineare e facilmente "seguibile" dai programmatori meno smaliziati. Ecco quindi la mia guida completamente in Italiano (salvo errori di grammatica); cercherò il più possibile di semplificare questo primo approccio.

Requisiti Minimi

Requisiti minimi del lettore:
  • conoscere ad un livello almeno medio il PHP (si può fare anche senza, ma sarebbe della medesima utilità didattica di ricalcare un disegno con i fogli di carta lucida);
  • saper effettuare un trasferimento di file tramite FTP.
Per poter seguire questa guida è necessario inoltre avere a disposizione:
  • un account su Facebook;
  • un webspace hosting che supporti PHP;
  • un hosting che abbia abilitata la funzione curl() di Php; se non sapete di cosa sto parlando andate avanti e confidate nella vostra buona stella... forse è già attiva senza che voi lo sappiate.
Fatto? (c)Giovanni Muciaccia - Art Attack

Il Facebook Developer App

Il primo passo da fare per diventare un programmatore di successo che sviluppa applicazioni per Facebook è quello di accedere al "Facebook Developer App"; autorizziamo eventualmente l'applicazione (perché di questo in fondo si tratta) ad accedere al nostro profilo e ci troveremo immersi nel popolato mondo degli sviluppatori di Facebook.

Visualizzando la pagina cerchiamo di ignorare l'area discussioni e concentriamoci sul pulsante che troviamo in alto a destra con su scritto "+ Set Up New Application". Non ci vuole certo un interprete madrelingua per capire che è questo il pulsante che fa al caso nostro; clicchiamoci quindi sopra.

La nostra Prima Applicazione


In questa schermata non dobbiamo fare altro che inserire un nome di prova per la nostra applicazione: "esempio" andrà benissimo per questo nostro test. Accettiamo ovviamente, dopo attenta lettura, i "Termini e condizioni d'uso" imposti da Facebook e salviamo le modifiche.
Nella successiva schermata visualizzeremo tutte le informazioni per personalizzare il comportamento dell'applicazione che scriveremo. Resistiamo alla tentazione di inserire dati e raggiungiamo la fine della pagina e cliccare su "Salva Modifiche".
Ci apparirà questa schermata:

Da qui possiamo vedere molte informazioni che riguardano l'applicazione; chiariamo il significato delle prime due, le uniche che utilizzeremo nel nostro tutorial:

  • Api Key: questo è il codice che identifica la tua applicazione su Facebook;
  • Secret: questo codice va mantenuto segreto e serve per autenticare le richieste che la tua applicazione esegue alla piattaforma Facebook.
Non c'è necessità di salvare questi dati, saranno sempre disponibili nella scheda di ciascuna delle nostre applicazioni.

Le librerie e il codice di esempio

In fondo alla scheda della nostra applicazione troviamo un utilissimo link: "Get started quickly with some example code"
Cliccando su "example code" ci apparirà una schermata in sovraimpressione che su alcuni browser neanche si visualizza bene. Dopo aver fatto un applauso per l'usabilità ai programmatori di Facebook, vediamo di capire che cos'è scritto (almeno questa parte dovrebbe risultarvi in italiano).
Al punto 1 ci viene chiesto di scaricare un pacchetto "tar.gz" che potete prelevare anche cliccando qui. Questo formato di compressione può essere aperto con il programma gratuito 7zip, se non ne avete uno già installato in grado di farlo (es. Winrar).
Scompattiamo questo file e riversiamone il contenuto dentro una cartella chiamata MY_DIR. Carichiamo poi questa cartella sul nostro server via FTP posizionandola dove vogliamo pubblicare il nostro primo progetto.
Punto 2: facciamo copia e incolla del codice php indicato e salviamolo su un file che chiamiamo index.php; carichiamo via FTP questo file sul nostro server nella stessa cartella in cui abbiamo messo al punto 1 la cartella MY_DIR.
Punto 3: clicchiamo su "Fatto" e torniamo alla schermata riassuntiva della nostra applicazione. Dall'elenco di link sulla destra della scheda clicchiamo su "Modelli" e inseriamo nel campo "Canvas Callback Url" l'indirizzo web in cui abbiamo posizionato i file dei punti 1 e 2. L'indirizzo sarà qualcosa del tipo http://www.nomedelsito.it/cartella/.
Per maggiore scrupolo potremmo anche inserire il nome del file dopo l'url, ma essendo il nome index.php automaticamente verrà caricato dal nostro browser.

A questo punto pensate giustamente di aver finito, di poter andare all'indirizzo fornito nel campo "Canvas Callback Url" e vedere la vostra applicazione di esempio girare; dopotutto siamo o non siamo arrivati al punto 3 di 3? E invece non è così.
Questo semplicemente perché nel tutorial di base su Facebook c'è una grossa imprecisione, se non vogliamo chiamarlo proprio un errore. Infatti alla riga 9 del nostro file index.php troviamo un comando di require_once che cerca il file facebook.php; Il file in questione non essendo nella stessa cartella del nostro index.php fallisce nell'essere incluso restituendo una riga di errore. Dobbiamo quindi modificare l'url presso il quale il nostro file index.php cerca il file facebook.php; se nei passi precedenti avete seguito fedelmente le istruzioni di questa guida, la riga 9 dovrebbe diventare require_once 'MY_DIR/facebook-platform/client/facebook.php';
Modifichiamo quindi il file index.php sostituendo all'istruzione require_once l'indirizzo corrento indicato qui sopra e ricarichiamo sul server via FTP (oppure, per i più smalizziati, eseguite la modifica con un editor di testo che consente connessioni FTP).

La nostra applicazione su Facebook

Andando all'indirizzo indicato nel campo "Canvas Callback Url" nella schde della nostra applicazione (nel nostro esempio http://www.nomedelsito.it/cartella/) verremo rediretti sul sito di Facebook che ci chiederà l'autorizzazione a condividere i nostri dati con l'applicazione che abbiamo scritto. Dato questo assenso verremo autenticati presso la nostra applicazione che potrà quindi avere libero accesso ai nostri dati personali stampandoci, in questo caso, 25 numeri identificativi dei nostri "amici" ordinati per numero d'id crescente.

ATTENZIONE. A questo punto scopriremo se avete sul vostro hosting, come da requisiti per questo tutorial, la funzione curl() abilitata. Se vi esce fuori un errore che rimanda alla funzione in questione non vi resta che contattare il vostro fornitore di servizi web e pregarlo di spiegarvi come attivare la funzione sul vostro server. Per gli altri che invece non hanno incontrato problemi, ora sapete che il vostro servizio di hosting ha abilitata la funzione curl();

I più svegli di voi avranno notato che nella spoglia pagina risultante c'è qualcosa che non va. Vicino alla scritta "Hallo" in alto a destra ci aspetteremmo di trovare il nostro nome, ma invece nulla. Se andiamo a vedere il codice php che genera il problema (riga 17) notiamo che l'istruzione è la seguente:

>> echo "Hello, !";

Il tag fb:name viene utilizzato in Facebook per visualizzare il nome di un utente fornendo come dato il suo id (nell'esempio contenuto nella variabile $user_id). Questo tag fuori da Facebook non ha significato, quindi non pubblica nessuna informazione. I tag come l'fb:name ci torneranno molto utili quando visualizzeremo la nostra applicazione direttamente dentro le pagine di Facebook, ovvero come fanno tutte le applicazioni che avete visto dentro il più grande social network del web, ma questo sarà argomento della prossima lezione. Per ora accontentatevi dei tristi numerelli che avete generato.

Conclusioni

Cosa abbiamo imparato?
Primo che l'esempio di partenza per i futuri programmatori di Facebook avrebbe dovuto essere fatto meglio; secondo, che ora siamo in grado di scrivere una applicazione esterna a Facebook ad un certo indirizzo web che può, dopo aver ricevuto l'autorizzazione dell'utente, accedere ai dati che lo riguardano.
Questo primo inizio ci proietta direttamente nello studio approfondito dei metodi con i quali possiamo interagire con la piattaforma Facebook. Insomma, quello che serve a questo punto è solo una buona idea... Per chi volesse propongo un file zip del codice necessario e del pacchetto di Facebook contenente tutto quello che dovete mettere sul vostro spazio ftp... ovviamente ricordatevi che in questo file index.php dovete inserire i valori della vostra applicazione di prova in corrispondenza delle variabili $appapikey (Api Key) alla riga 11 e $appsecret (Secret) alla riga 12. Questo non è invece necessario se si fa il copia e incolla da quello offerto nella schermata di Facebook perché in quel caso le variabili sono stampati con i valori corretti.

Per qualsiasi aiuto contattatemi, specificando a quale guida vi riferite e che tipo di problema avete.