Фильтровать поток twitter4j
Я пытаюсь отфильтровать поток twitter4j со следующим кодом:
TwitterStream twitterStream = getTwitterStreamInstance();
// Listener
twitterStream.addListener(listener);
// Filter
FilterQuery filtre = new FilterQuery();
String[] keywordsArray = { "iphone", "samsung" };
filtre.track(keywordsArray);
twitterStream.filter(filtre);
// Listening
twitterStream.sample();
Но результатом является, например:
27/59 - "Taking a risk over something only means that you want it more than anything"
28/63 - The more attractive you are, the more awkward I am.
29/64 - the thing about pain is that it demands to be felt
И я не восстанавливаю ключевые слова, за которыми я хочу следовать, где проблема?
Ответы
Ответ 1
Вам не нужно:
twitterStream.sample();
Если вы удалите его, вы должны начать просмотр твитов, соответствующих вашему запросу фильтра.
Когда вы вызываете filter
, ваш слушатель будет получать отфильтрованные твиты, однако из-за того, что вы затем вызываете sample
, вы эффективно заменяете фильтрованный поток, который ваш слушатель получает с образцом пара, который является случайным выбором Tweets.
Таким образом, иными словами, вызовите sample
или filter
, но не оба.