Twitter4J enthält Beispiele, und einer von ihnen ist exactly what you are looking for, jedoch müssen Sie die Zeile
TwitterStream twitterStream = new TwitterStreamFactory().getInstance();
mit
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("")
.setOAuthConsumerSecret("")
.setOAuthAccessToken("")
.setOAuthAccessTokenSecret("");
TwitterStream twitterStream = new TwitterStreamFactory(cb.build())
.getInstance();
Wenn Sie das nicht tun, werden Sie die Eigenschaften konfigurieren müssen Datei. Danach erhalten Sie diesen Code
import twitter4j.*;
import twitter4j.conf.ConfigurationBuilder;
public final class PrintSampleStream {
public static void main(String[] args) throws TwitterException {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("")
.setOAuthConsumerSecret("")
.setOAuthAccessToken("")
.setOAuthAccessTokenSecret("");
TwitterStream twitterStream = new TwitterStreamFactory(cb.build())
.getInstance();
StatusListener listener = new StatusListener() {
@Override
public void onStatus(Status status) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
}
@Override
public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
}
@Override
public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
System.out.println("Got track limitation notice:" + numberOfLimitedStatuses);
}
@Override
public void onScrubGeo(long userId, long upToStatusId) {
System.out.println("Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId);
}
@Override
public void onStallWarning(StallWarning warning) {
System.out.println("Got stall warning:" + warning);
}
@Override
public void onException(Exception ex) {
ex.printStackTrace();
}
};
twitterStream.addListener(listener);
twitterStream.sample();
}
}
Mit diesem erhalten Sie den öffentlichen Beispielstream zu erhalten. Wenn Sie bestimmte Tweets erhalten möchten, müssen Sie einige Filter verwenden. Wenn Sie zum Beispiel die Tweets für eine bestimmte Abfrage wollen, müssen Sie diese Zeile
twitterStream.sample();
mit dem Wort ändern, die Sie
FilterQuery filtre = new FilterQuery();
String[] keywordsArray = { "obama" };
filtre.track(keywordsArray);
twitterStream.filter(filtre);
möchten Wenn Sie Tweets von Spezifika streamen möchten Profile müssen Sie Verwenden Sie den folgenden Filter. Die Linie twitterStream.sample();
Sie benötigen es ändern zu diesem
long[] users = new long[]{someid,someotherid,otherid};
twitterStream.addListener(listener);
FilterQuery filtre = new FilterQuery();
filtre.follow(users);
twitterStream.filter(filtre);
die IDs für die Anordnung sind die IDs, dass Twitter für jeden Benutzer verwenden. Wenn Sie nicht die ID für einen bestimmten Benutzer wissen, dass Sie es mit Twitter4J bekommen konnte:
User user = tw.showUser("barackobama"); //tw is your Twitter variable from twitter4j.Twitter tw=tf.getInstance();
long id = user.getId();
Es gibt mehr Möglichkeiten, um Tweets aus dem Stream abzurufen, müssen Sie nur die Dokumentation lesen oder auf dieser Seite suchen. Viel Glück!
Was ist dieser 'ConfigurationBuilder'? Ich bekomme hier einen Fehler. 'ConfigurationBuilder kann nicht aufgelöst werden' –
Die Lösung für den obigen Kommentar gefunden. Ich muss das importieren. 'import twitter4j.conf. *;' Immer noch deine Antwort :) –
Wow, ich habe diesen Import vergessen, danke! – FeanDoe