FiNeX.org, Facebook ed integrazione con Drupal

FiNeX.org, Facebook ed integrazione con Drupal

Ieri sera ho trovato un po' di tempo per procedere con l'integrazione del blog nella pagina su Facebook (https://www.facebook.com/FiNeX.org). Già qualche settimana fa avevo preparato una paginetta che viene caricata in un iFrame. Ieri ho quindi aggiunto un po' di codice per verificare se l'utente ha cliccato "Mi piace".

Nel caso un utente abbia cliccato il pulsante "Mi piace", allora la pagina visualizza dei contenuti generati direttamente dal sito (che usa il CMS Drupal). La pagina caricata nel'iFrame di Facebook si aggancia al CMS ed estrae gli ultimi 5 articoli inseriti.

Il meccanismo è decisamente banale. Per prima cosa si usa l'SDK fornito da Facebook per collegarsi alla "Applicazione Facebook" che gestisce l'iFrame. In particolare si può determinare se la pagina è piacuta all'utente corrente.

Con Facebook::getSignedRequest() si ricavano quindi numerose informazioni, tra le quali anche se è piaciuta ("liked") e quindi bastano poche righe di codice (nel mio caso PHP) per stabilire che informazioni mostrare all'utente.

La pagina caricata nell'iFrame non l'ho generata direttamente dal CMS, ma richiama solamente una vista con gli ultimi 5 articoli usando la funzione views_embed_view(). In questo modo non serve gestire l'output completo di Drupal, ma solo un frammento di HTML velocizzando quindi i tempi di caricamento.

Il prossimo passo sarà quello di gestire correttamente la versione tramite HTTPS: Firefox, Internet Explorer ed Opera mostrano una semplice finestra di dialogo / messaggio di avviso per chiedere se proseguire nella navigazione della pagina a causa del certificato di sicurezza non autenticato, mentre Chrome e Chromium visualizzano un errore proprio antipatico.