Twitter4j 提供了示例,其中一个是exactly what you are looking for,但是你需要换行
TwitterStream twitterStream = new TwitterStreamFactory().getInstance();
与
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("")
.setOAuthConsumerSecret("")
.setOAuthAccessToken("")
.setOAuthAccessTokenSecret("");
TwitterStream twitterStream = new TwitterStreamFactory(cb.build())
.getInstance();
如果不这样做,则必须配置属性文件。之后你会得到这个代码
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();
}
}
您将开始接收示例公共流。如果您想获得特定的推文,您将需要使用一些过滤器。例如,如果您想要特定查询的推文,则需要更改此行
twitterStream.sample();
用你想要的词
FilterQuery filtre = new FilterQuery();
String[] keywordsArray = { "obama" };
filtre.track(keywordsArray);
twitterStream.filter(filtre);
如果您想从特定配置文件中流式传输推文,您将需要使用关注过滤器。 twitterStream.sample(); 这行你需要更改它
long[] users = new long[]{someid,someotherid,otherid};
twitterStream.addListener(listener);
FilterQuery filtre = new FilterQuery();
filtre.follow(users);
twitterStream.filter(filtre);
数组的 id 是 Twitter 用于每个用户的 id。如果您不知道某个用户的 id,您可以使用 Twitter4j 获得它:
User user = tw.showUser("barackobama"); //tw is your Twitter variable from twitter4j.Twitter tw=tf.getInstance();
long id = user.getId();
还有更多从流中检索推文的方法,您只需要阅读文档或在本网站上搜索即可。祝你好运!