Mostrare dei Feedback eBay nel proprio sito

Diverso tempo fa un cliente mi ha chiesto di implementare, se possibile, la seguente funzionalità: mostrare gli ultimi feedback eBay ricevuti, in un box all’interno del proprio sito. Fino a quel momento era presente un link che rimandava alla pagina originale dei feedback su eBay, ma si voleva saltare questo step e mostrare direttamente i commenti. La cosa naturalmente doveva avvenire in modo automatico, niente copia/incolla per capirci.
Pensando che una cosa del genere fosse già prevista, vado alla ricerca di un widget o qualcosa del genere, più o meno come fanno Twitter o Facebook, tanto per citarne due. Scopro invece, con una certa sorpresa, che eBay non prevede nulla di tutto questo. Non solo non offre widgets per i feedback, ma non esiste neanche un feed RSS per estrarre queste informazioni in modo “pulito”.
Parte quindi la mia consueta ricerca per il web, per vedere se qualche sito o servizio esterno ha la soluzione che fa per me. Purtroppo però non trovo niente di interessante. Esistono diverse soluzioni per mostrare le inserzioni ma, a quanto pare, dei feedback non si è occupato nessuno. In realtà a dire la verità qualcuno se n’è occupato (loro) ma quello che viene mostrato è solo il numero di feedback, mentre a me serve la lista dei commenti.
Alla fine decido di fare da me e di sviluppare lo script in PHP. In qualche ora ottengo il risultato desiderato, metto online e la missione è compiuta.
Nei mesi successivi diverse persone mi chiedono come possono fare a ricreare qualcosa del genere. Mi rendo conto quindi che tutto sommato questa esigenza non era così strana e che in molti hanno bisogno di un box come quello.
Da qui quindi la decisione di ottimizzare lo script in modo che sia personalizzabile e di rilasciarlo gratuitamente con licenza open source. A questo punto serve solo un nome: decido di chiamarlo Feedbackbox (sì lo so, non ho esagerato con la fantasia) e per condividere il codice sorgente decido di utilizzare l’ottimo GitHub.
Per chi volesse utilizzare Feedbackbox ecco i due link fondamentali:
<?
include "feedbackbox.php";
feedbackbox("kultmedia", "10");
?>
Nell’esempio riportato qua sopra kultmedia non è altro che lo username eBay, mentre 10 è il numero di commenti mostrati, che possiamo modificare a piacimento.
Lo script permette inoltre una completa personalizzazione dell’output, attraverso CSS.
Ecco le classi modificabili:
ul.feedbackboxlist (elenco dei commenti)
ul.feedbackboxlist li (singolo commento)
ul.feedbackboxlist li a.username (nome utente / link)
ul.feedbackboxlist li span.text (testo del commento)
Nel file example.php incluso nello zip scaricabile da GitHub troverete comunque un esempio già funzionante che potrete prendere come riferimento.
Fare una ricerca (efficace) su Twitter

Qualche giorno fa mi sono ritrovato di fronte alla seguente esigenza: cercare un mio tweet risalente ad agosto del 2011. Per la precisione si trattava di un tweet inviato di fronte alla sede di Twitter, nella splendida San Francisco. Recitava “Tweeting from Twitter”, una cosa molto inception ora che ci penso. “Facile”, ho pensato, “sono passati solo 4 mesi, lo troverò in un attimo”.
Come sempre, la prima soluzione che adotto è quella ufficiale, in questo caso Twitter advanced search. Trovo però subito due ostacoli:
- Nei vari parametri di ricerca non c’è modo di specificare un range di date
- Anche cercando per parole chiave, la ricerca sembra andare indietro solo di poche settimane, quindi non abbastanza per il mio obiettivo
Probabilmente questa, più che una falla, è una scelta fatta per limitare il carico sui loro server e posso capirne le motivazioni.
Decido quindi di trovare un’alternativa: le API di Twitter sono tra le più aperte in assoluto, quindi sono abbastanza fiducioso nel trovare un servizio che mi permetterá di raggiungere il mio scopo.
Dopo aver dato un’occhiata ai miei bookmarks su Pinboard mi viene in mente che in realtà avevo già fatto qualcosa del genere utilizzando il servizio Searchtweetsbydate. Peccato però che nel frattempo il servizio è stato chiuso e non trovo neanche spiegazioni sul motivo, dato che il dominio risulta del tutto abbandonato. Stessa identica sorte anche per Searchtastic.
Proseguo la ricerca e vedo che molti parlano di Topsy. Gli dò una possibilità ma vedo che la ricerca si comporta piuttosto male e trova dei Tweet con una logica che non ho ben capito ma che mi dà l’impressione di essere casuale.
Teoricamente a questo punto mi sarei dovuto arrendere, se non fosse che ormai è diventata una questione di principio e che non mi interessa neanche più tanto trovare quel tweet specifico (nel frattempo ho anche dimenticato perchè mi serviva…) ma capire com’è possibile che io non possa avere un archivio facilmente consultabile dei miei tweet. Sono miei d’altronde, per la maggior parte sono cose poco interessanti, ma sono i miei tweet… :)
La ricerca così continua e mi imbatto in due soluzioni a pagamento (o quasi):

L’idea è interessante: sostanzialmente permette di effettuare un’integrazione tra i tweet e il proprio calendario. Attraverso questo servizio, quindi, un utente può avere i propri tweet all’interno di iCal (o simili) in modo ordinato. Non male, però la versione gratuita permette di andare indietro nel tempo solo di un mese. La versione a pagamento teoricamente non ha limiti (in realtà c’è un limite anche qui di 3200 tweet ma pare che questo sia imposto dalle API di Twitter).

Permette di archiviare i propri tweet per avere una consultazione più rapida e funzionale. Il servizio è a pagamento, ma il pagamento è barattabile con un tweet promozionale che viene inviato direttamente dal servizio dopo aver fatto il login via Twitter (attraverso OAuth).
Queste due opzioni sono piuttosto abbordabili (anche perchè i costi sono minimi), ma rimango dell’idea che per questo tipo di servizio ci deve essere una soluzione gratuita.
E così, analogamente a quanto successo quando dovevo realizzare il mio url shortener, decido di cercare una soluzione self-hosted e faccio una ricerca sul buon vecchio GitHub.
Qui mi imbatto in Tweet Nest, una app PHP che promette subito bene e con un ottimo sito di presentazione.

Scarico quindi la sorgente e installo sul mio server. L’installazione è molto semplice, gli step fondamentali sono i seguenti:
- Creare un database (nel mio caso MySql ma l’app supporta praticamente tutti i tipi di database)
- Uploadare i file via FTP
- Modificare i permessi di alcuni file in modo che abbiano l’accesso in scrittura
- Creare dei file htaccess che serviranno perchè possa funzionare il mod_rewrite e per la protezione di alcune cartelle
- Lanciare la pagina di setup che, passo dopo passo, ci porterá alla fine dell’installazione
Finita l’installazione rimane solo una cosa da fare: lanciare le pagine di aggiornamento che permettono all’app di sincronizzare i tweet e i dettagli dell’utente. Queste pagine sono, per motivi di sicurezza, protette da password (che abbiamo impostato in fase di installazione).
Questa sincronizzazione sarebbe da eseguire periodicamente e per ottenere questo risultato possiamo anche impostare un Crontab con una frequenza da noi stabilita, in modo da non doversi più preoccupare delle pagine di aggiornamento.
Il risultato è davvero ottimo: l’interfaccia è semplice e ben fatta, con qualche richiamo allo stile grafico di Twitter. Sulla colonna di destra è visualizzato l’archivio mensile e la ricerca ci permette di trovare i nostri tweet alla velocità della luce. Inoltre, volendo, è anche possibile personalizzare l’aspetto grafico nei minimi dettagli. Trattandosi di una soluzione self-hosted, tutte le informazioni sono memorizzate nel nostro database e questo è un vantaggio non indifferente.
In conclusione, ecco la pagina del mio archivio di tweets. Ho scelto di renderla pubblica ma volendo è anche possibile proteggerla da password, trattandosi di uno script interamente open source.
