2012-12-17 17 views
8

È possibile ottenere tweet contenenti foto? Attualmente sto utilizzando twitter search api e ricevo tutti i tweet con dettagli sull'entità impostando include_entities = true. Vedo i dettagli delle immagini sotto l'oggetto multimediale, ma è comunque in grado di filtrare e ottenere oggetti tweet che contengono solo questi elementi multimediali. O c'è comunque in Twitter4j per fare questa domanda?Ottieni Tweet con immagini usando Twitter search api

risposta

16

Non v'è alcun modo specifico per specificare che ho bisogno solo foto o video, ma è possibile filtrare i risultati in base filter:links o filter:images o filter:videos nella query con include_entities=true.

Per esempio: Per ottenere i tweet che contengono link dal 2012-01-31, si query dovrebbe avere include_entities parametro così come filter:links come mostrato nel seguente modo:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Alinks&include_entities=true" 

Come la vostra necessità è quella di filtrare i tweet sulla base di immagini/foto, penso che dovresti usare filter:images.

Un esempio del suo caso sarà simile:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Aimages&include_entities=true" 

Spero che questo aiuti.

+0

Ricerca tramite filtro: le immagini non restituiscono alcun risultato. L'esempio di URL di Google nell'esempio sopra riportato non restituisce i tweet contenenti immagini anche se ci sono tweet di Google che contengono immagini. Mi sto perdendo qualcosa? Ho rimosso il filtro: immagini e restituisce tweet, alcuni dei quali hanno immagini. –

+0

Hai dimenticato di aggiungere - filtro: i video funzionano come previsto. –

+1

ok ho capito. filtro: le immagini restituiscono solo le immagini che non vengono caricate direttamente su twitter a.k.una immagine che ha url a partire da pic.twitter.com. quindi ho modificato la mia richiesta in seguito: 'https://search.twitter.com/search.json?q=pic.twitter.com%20OR%20filter%3Aimages%20da%3Agoogle%20since%3A2012-01-31&include_entities=true ' –

2

Con l'ultima API di Twitter, non sono riuscito a far funzionare i filtri e non sono riuscito a trovare alcuna spiegazione nei loro documenti. Anche se è possibile ottenere tutti i tweet e quindi analizzare solo quelli multimediali. Si può sparare questo se all'interno dello script di analisi:

if(this.entities.media != null){ 
    //Parse the tweet 
} 

Questa non è la soluzione migliore, ma la parte peggiore viene a Twitter che si sta dando ulteriori informazioni e l'utilizzo di più delle sue risorse proprie.

0

Nel lastest Twitter API si può fare nel caso ConfigurationBuilder, prima di creare l'istanza Twitter:

ConfigurationBuilder cb = new ConfigurationBuilder(); 
cb.setDebugEnabled(false); 
cb.setOAuthConsumerKey(API_KEY); 
cb.setOAuthConsumerSecret(API_SECRET); 
cb.setOAuthAccessToken(ACCESS_TOKEN); 
cb.setOAuthAccessTokenSecret(SECRET_KEY); 
// enabling include_entities parameters 
cb.setIncludeEntitiesEnabled(true); 
Twitter twitterInstance = new TwitterFactory(cb.build()).getInstance(); 

Inoltre, dopo aver attivato le entità, nella stringa di ricerca si deve ha avuto il filtro per condizione " :immagini".

List<String> keywords = new ArrayList<String>(); 
keywords.add("#pet"); 
keywords.add("cat"); 
// String.join for Java 8 
String twitterSearchString = "((" + String.join(" OR ", keywords) + ")"; 
// adding the filter condition 
twitterSearchString += " AND filter:images)"; 
Query q = new Query(twitterSearchString); 

E si otterrà solo risultati con immagini (testati con twitter4j-core 4.0.4).