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.
