Avviso: Se non hai tempo da perdere e non vuoi leggere una premessa fatta di sfoghi è insulti, passa direttamente al paragrafo “Cos’è l’Open Graph”.
I programmatori che hanno avuto a che fare con lo sviluppo di applicazioni Facebook, sono senza dubbio i possessori del più ricco vocabolario di insulti e bestemmie esistente al mondo!
Le continue modifiche sulle configurazioni, i bug delle API e la disorganizzatissima documentazione messa a disposizione, non sono certo d’aiuto per chi si si avvicina al mondo dello sviluppo in ambito Facebook per la prima volta…ma anche per la seconda e la terza. Mi dispiace iniziare questo articolo con una così triste e negativa premessa, ma devo ammettere che una buona parte dei capelli che ho perso la dedico proprio a questi maledetti bastardi piccoli inconvenienti!!
Fermi tutti però … dal 22 Aprile 2010 la situazione è un pò cambiata, ci sono sempre modifiche sulle configurazioni, le Api hanno ancora Bug e la documentazione è sempre misera….. ma almeno adesso abbiamo l’Open Graph!
Cos’è l’Open Graph
Il termine “Open Graph” è stato coniato da Facebook all’ F8 in sostituzione del più comune “Social Network”. Il significato di questo termine è, senza troppi giri di parole, “the global mapping of everybody and how they’re related”. Citando sempre quanto detto alla conferenza di San Francisco: “Yelp si occupa di mappare la parte di Graph legata al business, Pandora quello legato alla musica. Se riuscissimo a connetere tutte queste mappe in un unico Graph, creeremo un Web più semplice, più sociale, personalizzato e sematico! Queste connessioni non avvengono solo su Facebook, ma sono presenti in tutto il web e oggi con l’Open Graph siamo in grado di mettere tutte queste cose insieme”. Senza dubbio l’obbiettivo è interessante … la semantica nel web è uno studio ricercato, ma forse ci voleva proprio un colosso per portare più valore a quello che si è iniziato con RDF, OWL, e compagnia bella.
L’Open Graph, ha come scopo quello di diventare uno standard per la descrizione semantica di pagine web. E’ stata creata una vera e propria brand image che darà un marchio al protocollo e una pagina web che descrive le specifiche, il tutto distribuito e approvato dalla open web foundation.
Per trasformare una pagina web in un oggetto consumabile dall’Open Graph, dovremo aggiungere alcuni tag alle nostre pagine e per essere certi che i tag che abbiamo inserito siano corretti potremo utilizzare degli strumenti dedicati alla verifica delle pagine dell’OpenGRaph (urlLinter, og:it, OGraph.in etc). Entrerò nel merito tecnico in un articolo dedicato.
Quindi, un utente su Facebook definisce il suo profilo e il suo “Graph” aggiungendo amici ed esprimendo preferenze quali: politica, situazione sentimentale e descrizione personale; mentre, attraverso L’Open Graph siamo in grado di descrivere una qualsiasi pagina web tramite tag predefiniti, in grado di dare informazioni semantiche al contenuto (potremo per esempio aggiungere un tag che indichi la natura del contenuto della pagina:Un film, organizzazione, Bar, un personaggio pubblico etc … qui la lista completa). Mentre nel primo caso parliamo unicamente di Facebook, nel secondo stiamo parlando dell’intero Web…. …… ^.^ dato che tutto questo è stato creato da Facebook, facendo due conti, realizzerete che esisterà un modo per collegare “Facebook” a “Tutto il Web” e perchè no, viceversa !!
Il Pulsante Like
Non ha bisogno di grandi presentazioni, ma non tutti conosco l’effettivo scopo del famoso pulsantino.
Se voi cliccaste sul like di questa pagina, automaticamente andreste ad esprimere la volontà di collegare in qualche modo il vostro utente Facebook con il contenuto della pagina e quindi se la pagina fosse corredata dei vari tag dell’Open Graph (e in parte lo è) questo collegamente esprimerebbe molto più che un link ad un url.
Prendiamo questo esempio: Se cliccaste sul like della pagina dedicata al film “Full metal Jacket” su Imdb (la pagina è completa di opengraph tag) andreste ad aggiungere questo film alla lista dei vostri interessi su Facebook e se non esistesse ancora una pagina Facebook dedicata a questo specifico contenuto (o meglio alla pagina web che descrive questo contenuto), verrebbe automaticamente creata! (non sto inventando niente eh!). Questa connessione permetterà a chi gestisce la pagina di inviare informazioni sul vostro news feed ma non solo, nell’ottica di un Web perfettamente taggato per l’OpenGraph e di una navigazione fatta di Like intelligenti (e va bhe …poi?) le altre pagine web visitate dal diligente utente Facebook, potrebbero trasformasi in base ai contenuti segnalati tramite i like.
Per rendere possibile questa utopica descrizione, Facebook ha prefabbricato alcuni strumenti …
I Social Plugins
Sono il metodo più semplice per integrare nelle nostre pagine l’Open Graph senza troppi sforzi, dando all’utente l’impressione di avere pagine che si adattino in base ai suoi gusti (dice Facebook). Il pulsante Like stesso è considerato un social Plugin (in realtà viene descritto come il mezzo che permette ai social plugin di presentare contenuti personalizzati).
Uno dei social Plugin è l’Activity Feed, che mostra le attività dei nostri amici (e di altri utenti) legate a un dominio, mentre il plugin Raccomendations lavora in maniera simile ma mostrando contenuti in base ai Like che avete espresso e alle informazioni legate alle vostre connessioni nell’Open Graph (personalmente non noto grandi differenze di contenuti … ma forse non sono l’utilizzatore Facebook più consigliato avrò dato si e no 5 like sparsi per il web).
Fino a qui abbiamo unicamente parlato di come sia stata ristruttarata la logica di connessioni in Facebook, ma non abbiamo ancora accennato al metodo per interagire direttamente con l’Open Graph tramite codice …
Le Graph API
Sono il nuovo sistema di API che utilizzeremo per accedere all’Open Graph. Tutti metodi sono accessibili tramite chiamate Web e i metodi protetti utilizzano Oauth 2.0 (una versione di Oauth rivisitata e coprodotta da Facebook) per eseguire chiamate autenticate.
La documentazione per ora è un pò scarna ma almeno sembra toccare tutti gli argomenti. Il vecchio sistema per interrogare Facebook (le REST API) continua ad esistere e in alcuni casi sarà l’unico modo per effettuare operazioni non ancora supportate sulle Graph Api (il che contribuirà a migliorare ulteriormente il vostro vocabolario di bestemmie).
Senza dubbio questo nuovo metodo facilità di molto la possibilità di eseguire il famigerato Connect (che Facebook preferisce non vedere più come un elemento distinto dalle API … ma integra pienamente nella logica delle Graph Api come funzionalità per eseguire chiamate che necessitino di un login) e di interagire con i dati residenti nei database di Facebook.
Questo è un esempio di chiamata sul graph api : https://graph.facebook.com/cocacola che riporterà un output simile a questo :
{
"id": "40796308305",
"name": "Coca-Cola",
"picture": "http://profile.ak.fbcdn.net/profile-ak-snc1/object3/1853/100/s40796308305_2334.jpg",
"link": "http://www.facebook.com/coca-cola",
"category": "Consumer_products",
"username": "coca-cola",
"products": "Coca-Cola is the most popular and biggest-selling ..etc ",
"fan_count": 11102416
}
Molto semplicemente ogni oggetto del graph è rappresentato da un ID, in questo caso abbiamo interrogato L’ID cocacola. Se volessimo avere informazioni delle connessioni di un oggetto aggiungeremo semplicemente alla chiamata il tipo di connessione che vorremmo analizzare. Per esempio la chiamata https://graph.facebook.com/me/friends dovrebbe mostrare la lista di amici dell’utente collegato all’applicazione.
(questa chiamata potrebbe generare un messaggio d’errore perchè dovremmo essere loggati a facebook e avere un token attivo risultante dal processo di autenticazione tramite OAuth. Entreremo nei dettagli nei prossimi articoli).
Questa veloce panoramica spero possa esservi utile per capire quali sono le novità che vengono introdotte nello sviluppo di applicazioni appoggiate a Facebook, e in generale per avere qualche idea in più sulla direzione verso quale sembrano essersi rivolte le sue mire!
A prestissimo per i prossimi articoli puramente tecnici giuro!