【发布时间】:2014-08-03 22:48:28
【问题描述】:
我想在我的 java 应用程序中从 twitter 流式传输推文。我目前可以使用 Twitter4J 做到这一点。 这是我的代码示例 -
public static void main(String args[])
{
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("PEBF3A1wUnNLfT83jpjGBEVNn");
cb.setOAuthConsumerSecret("Cqcuw6xyQ2tVtkGdy76s9fQuDigyDuJwxrgMETNhfuORloNFju");
cb.setOAuthAccessToken("2492966954-Fut0P36Enh0V1UAAVODUHSTGvYKy4lscWIEpaej");
cb.setOAuthAccessTokenSecret("x8onfYsnZvgImnyLVd1ncwvMhwNtrieU16gTkywUZOzpP");
TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new StatusListener(){
public void onStatus(Status status)
{
System.out.println();
System.out.println("*****************************************************************");
User user = status.getUser();
// gets Username
String username = status.getUser().getScreenName();
System.out.println(username);
String profileLocation = user.getLocation();
System.out.println(profileLocation);
long tweetId = status.getId();
System.out.println(tweetId);
String content = status.getText();
System.out.println(content +"\n");
}
public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {}
public void onTrackLimitationNotice(int numberOfLimitedStatuses) {}
public void onException(Exception ex) {
ex.printStackTrace();
}
@Override
public void onScrubGeo(long arg0, long arg1) {
// TODO Auto-generated method stub
}
@Override
public void onStallWarning(StallWarning arg0) {
// TODO Auto-generated method stub
}
};
List<String> queries = new ArrayList<String>();
queries.add("#carb0nx");
twitterStream.addListener(listener);
//twitterStream.firehose(20);
String[] trackQueries = (String[]) queries.toArray(new String[queries.size()]);
FilterQuery filterQuery = new FilterQuery();
twitterStream.filter(filterQuery.track(trackQueries));
}
上述程序仅获取运行程序后为主题标签添加的推文。在获取新添加的推文之前,我还想获取所有旧推文。
提前致谢。enter code here
【问题讨论】: