Twitter web client made with jQuery and Bootstrap
JavaScript PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
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