1

私はまだTwitterによって禁止されていません。ただし、避けたいと思います。StatusListenerを使用してキーワード配列に従ってツイートをプルする簡単な方法があります。その後、それらはブランチ配列によってフィルタリングされます。私が理解したように、StatusLintenerは新しいツイートのみを取得し、アプリケーションが停止するまで実行され続けます。

このコードはしばらくするとレート制限に達すると思います。それで、それを処理する方法はありますか?認証要求は1時間に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);      
}

ありがとう

4

1 に答える 1

4

StatusListenerツイートを取得するために Twitter API をポーリングしません。Twitter Streaming API からのツイートのストリームをリッスンします。したがって、レート制限の対象にはなりません。

于 2012-11-07T15:51:42.503 に答える