
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Creiamo un’applicazione per Facebook utilizzando il linguaggio PHP. Codice commentato ed esempi da scaricare
In un precedente articolo abbiamo introdotto i lettori alla creazione di applicazioni per Facebook, descrivendo le principali peculiarità dell’API fornita dal servizio e del linguaggio FBML. In questo articolo andremo ad ampliare i nostri orizzonti vedendo nel dettaglio la creazione di una vera applicazione, cercando spunti e soluzioni che possano essere utili in una situazione reale. L'applicazione creata è anche scaricabile dal link Download in alto in questa pagina.
Riprendendo quanto visto a conclusione del primo articolo, ricordiamo che Facebook propone delle linee guida per costruire applicazioni di qualità. In particolare, si richiede che un’applicazione sia significativa, fidata e ben disegnata. L’essere significativa dipende chiaramente dalla creatività dello sviluppatore, che deve trovare il modo di proporre un’idea utile, espressiva e sociale. Da questo punto di vista un aspetto importante è il coinvolgimento del grafo degli amici, oltre alla possibilità di esprimere informazioni sulla propria personalità. La Facebook API ci fornisce il necessario per interagire con gli altri utenti, mediante l’uso di notifiche o semplicemente pubblicando informazioni sul nostro profilo.
Un altro aspetto importante quando si progetta un’applicazione riguarda la sua integrazione con lo stesso Facebook dal punto di vista grafico. Colori e stili utilizzati da Facebook vengono parzialmente resi noti sul Wiki degli sviluppatori, e la questione viene approfondita meglio in un articolo di SocialSnippets.com. Oltre a creare un foglio di stile che vada ad imitare l’originale di Facebook, è inoltre possibile utilizzare nella propria applicazione anche gli stili originali del servizio, ma purtroppo questa opzione non è adeguatamente documentata.
Un ulteriore aspetto da curare, per dare una maggiore visibilità alla nostra applicazione e quindi aumentarne le probabilità di successo, riguarda l’internazionalizzazione: è opportuno valutare a monte la possibilità di tradurre l’applicazione in più lingue. A questo scopo, ci viene incontro l’applicazione Translations, da installare preliminarmente nel nostro account da sviluppatore, che si appoggia ad alcuni tag FBML rendendo il nostro lavoro relativamente semplice.
Con una semplice applicazione di esempio, vediamo ora come mettere insieme i vari pezzi del mosaico per ottenere un risultato finale soddisfacente. L’applicazione in questione consente di gestire una lista dei propri obiettivi da raggiungere, mostrando sul proprio profilo le scadenze e gli obiettivi raggiunti. Per visualizzare il comportamento dell’applicazione è necessario aggiungerla al proprio profilo, visitando l’indirizzo http://apps.facebook.com/htmlit-goal. Nei paragrafi che seguono viene discusso lo sviluppo dell’applicazione.
Assumendo di aver già installato le applicazioni Developers e Translations, procediamo con la registrazione della nuova applicazione come descritto nel primo articolo. Questo primo passo ci consente di ottenere i due codici API Key e Secret (nella versione in italiano: Chiave API e Invisibile) necessari per interfacciarsi con la Facebook Platform. I parametri importanti da specificare sono i seguenti:
Per quanto riguarda gli aspetti di internazionalizzazione, è bene partire utilizzando la lingua inglese, English (US), ed andare a tradurre successivamente le varie stringhe con l’applicazione Translations. Anche nella descrizione dell’applicazione, utilizziamo inizialmente la lingua inglese. Teniamo presente che l’applicazione Developers ci consente di correggere in un secondo momento i dati che abbiamo inserito. A questo punto, una volta registrata l’applicazione saremo in possesso dei due codici API Key e Secret.
Prima di procedere con l’implementazione del cuore della nostra applicazione, assicuriamoci di creare la cartella specificata come Callback URL nel nostro spazio web, e di copiarci tutti i sorgenti della PHP Facebook Client Library.
Per quanto riguarda gli obiettivi che i nostri utenti gestiranno, le informazioni verranno memorizzate nella seguente tabella MySQL:
CREATE TABLE goal ( goal_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, user_id BIGINT UNSIGNED, goal_date DATE , goal_deadline DATE, goal_title VARCHAR(250), goal_status INT );
Per gestire il caricamento della PHP Facebook Client API, la connessione a MySQL ed eventuali altre operazioni preliminari, creiamo un file init.php da includere all’inizio di tutti gli altri script, a cui deleghiamo tali operazioni. Se la complessità dell’applicazione dovesse aumentare, probabilmente è opportuno inserire tutti i dati di configurazione in un file config.php e lasciare solo le operazioni preliminari in questo init.php, ma per ora non abbiamo problemi di complessità. I dati della connessione e dell’applicazione vanno naturalmente sostituiti con i propri.
<php /** * init.php */ // Carico PHP Facebook Client Library require_once 'facebook.php'; // Dati connessione $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname = 'mio-db'; // Creazione oggetto $facebook $appapikey = 'mia-api-key'; $appsecret = 'mio-codice-secret'; $facebook = new Facebook($appapikey, $appsecret); if (!isset($_REQUEST['fb_sig_in_profile_tab'])) { $user_id = $facebook->require_login(); } // Connessione MySQL $db = @mysql_connect($dbhost, $dbuser, $dbpass) or die('mysql_connect() error: ' . mysql_error()); @mysql_select_db($dbname) or die('mysql_select_db() error: ' . mysql_error()); ?>
Oltre a gestire la connessione a MySQL che ci servirà interfacciarci con il database, l’unica novità nel codice riguarda un controllo sulla variabile $_REQUEST['fb_sig_in_profile_tab']
che fa parte di un gruppo di variabili passati da Facebook alla nostra applicazione e che viene valorizzata ad 1 se l’applicazione è richiamata dal relativo Tab nel profilo. In tal caso, non è necessario effettuare il login con la funzione require_login()
.
Scaricando il codice dell’applicazione possiamo quindi analizzarne le scelte implementative. L’allegato comprende i seguenti file:
fbth
(uguale a fbtab
ma senza proprietà di floating) da utilizzare nei tag <th>
;Analizzando ad esempio la pagina index.php, notiamo come la gestione dei fogli di stile non consenta l’uso di CSS esterni, anche se lo sviluppo di Facebook Platform si sta muovendo verso questa direzione. Comunque, per utilizzare il nostro fb.css come foglio di stile esterno, è necessario in realtà leggerne il contenuto all’interno di un normale tag <style>
:
echo '<style type="text/css">' . file_get_contents('fb.css', true) . '</style>';
Le classi definite nello stile vengono sfruttate nelle diverse pagine. Per quanto riguarda i form, abbiamo preferito sfruttare lo stile di alcune classi predefinite in Facebook. Ciò è visibile ad esempio in add.php oppure mod.php, dove si nota l’uso delle seguenti classi CSS:
Nei vari file dell’applicazione è possibile vedere come sia stata utilizzata in modo rigoroso una metodologia per poter tradurre la propria applicazione in più lingue. A monte, creando la nuova applicazione abbiamo definito l’inglese come lingua principale. Nel codice invece facciamo largo uso del tag <fb:intl>
che nasce proprio con questo scopo: al suo interno inseriamo le parti testuali in inglese, che potremo poi tradurre utilizzando l’applicazione Translations, la quale tra l’altro consente anche ai nostri utenti di partecipare al progetto di traduzione. Per contenuti testuali particolarmente corti e non auto-esplicativi, è possibile utilizzare un attributo desc
per aggiungere una descrizione relativa al testo da tradurre. Nel Wiki degli sviluppatori sono presenti dei suggerimenti che è opportuno seguire per predisporre al meglio il codice con il fine di consentire una più agevole traduzione.
Altri aspetti legati all’internazionalizzazione ruotano attorno alla gestione del tempo: da questo punto di vista, il tag <fb:date>
ci consente di formattare una data in base alla localizzazione dei nostri utenti. L’input di questo tag consiste in un timestamp in formato Unix, creato quindi con la funzione mktime() e passato attraverso l’attributo t. Con l’attributo format specifichiamo invece il formato della data, come descritto nel Wiki.
Concludiamo questa serie di articoli con dei link per approfondire quanto analizzato in queste pagine. Per la panoramica completa sull’API e sul linguaggio FBML rimandiamo naturalmente al Wiki ufficiale.
Se vuoi aggiornamenti su Creare un'applicazione per Facebook in PHP inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Danilo Poccia, technical evangelist AWS, ripercorre la storia dell’intelligenza artificiale e delle diverse tecniche di machine learning e di sistemi […]
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
Come creare database e collection, inserire, estrarre, aggiornare e rimuovere dati da una base di dati MongoDB con Python
Impariamo ad utilizzare Takamaka, una blockchain Java Full Stack, per scrivere codice Java installabile ed eseguibile su una blockchain
SindacatoNetworkers.it è la prima piattaforma sindacale interamente online rivolta ai professionisti e ai lavoratori dell’ICT
Come creare un’applicazione per la gestione di un negozio di commercio elettronico con il framework PHP Laravel. Una guida completa che, partendo dalla configurazione di un ambiente di sviluppo basato su Laravel, descrive nel dettaglio tutti i passaggi necessari per pubblicare un e-commerce con cui promuovere e vendere i propri prodotti online