Twitter web client made with jQuery and Bootstrap
JavaScript PHP
Latest commit c1dda04 Jun 21, 2013 @vcuculo removed unused file
Permalink
Failed to load latest commit information.
css
img
js
vendor
.gitignore
LICENSE
README
index.html
twitter-proxy.php

README

 
 COWS twitter client
 Copyright (C) 2013  Vittorio Cuculo <me@vcuculo.com>
 
 =====================================================

 ** PROBLEMA **

 Per la realizzazione del progetto è stato necessario trovare una 
 soluzione a due problemi fondamentali:

 * le API di Twitter non supportano chiamate di tipo CORS
   (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)

 * realizzando una applicazione interamente client side si rendono
   visibili, nel codice JavaScript, il 'consumer_key' e il 'consumer_secret' 
   necessarie per l'interazione tra l'applicazione e le API di Twitter

 I due problemi sono, in realtà, correlati tra di loro.
 Gli sviluppatori di Twitter, infatti, scoraggiano la realizzazione di 
 applicazioni interamente client side per evitare disclosure delle
 'consumer_key' e 'consumer_secret' che potrebbero essere utilizzate da 
 terze parti. Dunque, per questo motivo non realizzano il supporto a CORS.

 ** SOLUZIONE **

 La soluzione che ho trovato è quella di utilizzare una pagina PHP che
 faccia da proxy tra il client Javascript e le API di Twitter.
 All'interno del proxy, inoltre, sono memorizzati la 'consumer_key' e
 il 'consumer_secret', che permettono di mantenere nascoste queste 
 informazioni all'utente.
 
 ** CONFIGURAZIONE **

 Affinchè il proxy, realizzato dal file "twitter-proxy.php", funzioni
 correttamente, è necessario copiare l'intera directory "COWS" nella root
 directory di un webserver locale, in maniera tale da rendere
 l'applicazione raggiungibile all'indirizzo "http://127.0.0.1/COWS".
 Se si vuole cambiare la posizione del proxy, rimanendo comunque sullo
 stesso webserver, è necessario configure la prima riga del file
 "js/utility.js"

   const PROXY = "twitter-proxy.php?url=";

 La 'consumer_key' e la 'consumer_secret' incluse nel file
 "twitter-proxy.php" sono legate alla callback URL
 "http://127.0.0.1/COWS/". Se si vogliono utilizzare questi dati,
 dunque, è necessario hostare la directory COWS su un server web locale
 che permetta di raggiungere l'applicazione all'url indicato sopra.

 ** UTILIZZO **

 Le timeline che si inseriscono nell'applicazione sono contenute
 nell'array "twArray". Ogni timeline include l'array "tweets" che
 raccoglie i tweet della relativa timeline. Ogni tweet è rappresentato
 da un oggetto definito secondo le specifiche delle API di Twitter
 https://dev.twitter.com/docs/platform-objects/tweets