Ist es möglich, Tweets, die Fotos enthalten? Ich verwende derzeit twitter search api und bekomme alle Tweets mit Entitätsdetails, indem ich include_entities = true festlege. Ich sehe Bilddetails unter Medienobjekt, aber es ist trotzdem vorhanden, Tweets-Objekte zu filtern und zu erhalten, die nur diese Medienelemente haben. Oder gibt es in Twitter4j sowieso diese Abfrage?Get Tweets mit Bildern mit Hilfe von Twitter Suche api
Antwort
Es gibt keine spezifische Art und Weise zu geben, dass ich nur Fotos oder Videos benötigen, aber Sie können die Ergebnisse basierend auf filter:links
oder filter:images
oder filter:videos
in Ihrer Abfrage zusammen mit include_entities=true
filtern.
Beispiel: die Tweets zu erhalten, die Links enthalten, da 2012-01-31
, Sie Abfrage sollte include_entities
Parameter sowie filter:links
haben wie folgt dargestellt:
https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Alinks&include_entities=true"
als Ihre Notwendigkeit ist Ihre Tweets filtern basierend auf Bildern/Fotos, ich denke du solltest filter:images
verwenden.
Ein Beispiel für Ihren Fall würde wie folgt aussehen:
https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Aimages&include_entities=true"
Hoffnung, das hilft.
Mit der neuesten twitter API konnte ich keine Filter arbeiten und ich konnte keine Erklärung in ihren Dokumenten finden. Sie können jedoch alle Tweets erhalten und dann nur die Medien analysieren. Sie können das Feuer, wenn in Ihrem Parsing-Skript:
if(this.entities.media != null){
//Parse the tweet
}
Dies ist nicht die beste Lösung ist, aber das Schlimmste kommt twittern, die Sie mehr Informationen zu geben ist und mehr eigene Ressourcen.
In dem neuesten Twitter-API können Sie es in der Configuration Instanz tun, bevor die Twitter-Instanz erstellen:
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();
Auch nach den Entitäten ermöglicht, in der Suchzeichenfolge Sie haben den Zustand „-Filter hatten : Bilder ".
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);
Und Sie werden nur Ergebnisse mit Bildern bekommen (getestet mit twitter4j-core 4.0.4).
Suche mit Filter: Bilder liefert keine Ergebnisse. Die Beispiel-URL von Google im obigen Beispiel gibt keine Tweets zurück, die Bilder enthalten, obwohl es Tweets von Google gibt, die Bilder enthalten. Fehle ich etwas? Ich habe Filter entfernt: Bilder und es gibt Tweets zurück, von denen einige Bilder haben. –
Forgot to add - Filter: Videos funktionieren wie erwartet. –
ok ich habe es herausgefunden. filter: images gibt nur Bilder zurück, die nicht direkt über twitter a.k.a hochgeladen wurden. Bilder mit URL beginnend bei pic.twitter.com. Also änderte ich meine Anfrage zu folgendem: "https://search.twitter.com/search.json?q=pic.twitter.com%20OR%20filter%3Aimages%20from%3Agoogle%20since%3A2012-01-31&include_entities=true ' –