我还没有被 Twitter 禁止。但是,我想避免它。我有一个简单的方法,使用 StatusListener 根据关键字数组拉推文,然后它们将被分支数组过滤。据我了解,StatusLintener 仅获取新推文,并且仍在运行,直到应用程序停止。
我认为这段代码会在一段时间后达到速率限制。那么,有没有办法处理呢?一个身份验证请求可以在一小时内请求 350 次,它是如何与 StatusLintener 一起工作的?
public static void getTweetsKeywords(ConfigurationBuilder cb, String[] keywords, String[] branches,){
TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new StatusListener() {
public void onStatus(Status status) {
System.out.println(status.getCreatedAt()+" - "+"@" + status.getUser().getScreenName() + " - " + status.getText());
}
public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
}
public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
System.out.println("Got track limitation notice:" + numberOfLimitedStatuses);
}
public void onScrubGeo(long userId, long upToStatusId) {
System.out.println("Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId);
}
public void onException(Exception ex) {
ex.printStackTrace();
}
};
FilterQuery fq = new FilterQuery();
fq.track(keywords);
twitterStream.addListener(listener);
twitterStream.filter(fq);
}
谢谢