Отфильтровывать пользователей с помощью TwitterUtils

Есть ли способ извлечь только конкретного пользователя, который публикует твит при использовании TwitterUtils.createStream()? (JAVA) Аргумент "filters" указывает строки, которые должны содержаться в твитах, но я не уверен, как это можно использовать для указания пользователя, который меня интересует. у меня есть это:

String[] filters = { "#USA" };
    JavaDStream<Status> tweets = TwitterUtils.createStream(ssc,filters);

это дает мне твиты, которые содержат "#USA", что мне нужно, это способ прослушать конкретного пользователя и посмотреть, что он публикует.

Спасибо

2 ответа

Решение
private void receive() {
    try {
        TwitterStream newTwitterStream = new TwitterStreamFactory()
                .getInstance(twitterAuth);
        newTwitterStream.addListener(new StatusListener() {

            public void onException(Exception e) {
                if (!arret) {
                    restart("Erreur pandant la reception des tweets", e);
                }

            }

            public void onTrackLimitationNotice(int arg0) {
                // TODO Auto-generated method stub

            }

            public void onStatus(Status status) {
                store(status);
            }

            public void onStallWarning(StallWarning arg0) {
                // TODO Auto-generated method stub
            }

            public void onScrubGeo(long arg0, long arg1) {
                // TODO Auto-generated method stub

            }

            public void onDeletionNotice(StatusDeletionNotice arg0) {
                // TODO Auto-generated method stub

            }
        });
        FilterQuery query = new FilterQuery();

        if (filter_mots.length > 0 || filter_utilisateurs.length >0) {
            if (filter_mots.length > 0){
                query.track(filter_mots);   
            }
            if (filter_utilisateurs.length >0){

                query.follow(filter_utilisateurs);  
            }
            newTwitterStream.filter(query);
        } else{
            newTwitterStream.sample();
        }
        setTwitterStream(newTwitterStream) ; 
        arret = false ; 

    } catch (Throwable t) {
        // En cas d'erreur on redémare le streaming 
        restart("Erreur pendant la reception des données ", t);
    }
}

Для фильтрации пользователей с Twitter4j вы должны использовать TwitterStream, как показано ниже:

TwitterStream twitterStream = new TwitterStreamFactory(cb.build())
    .getInstance(); // First you create the Stream

StatusListener listener = new StatusListener() {
    //... a lot of things
}

twitterStream.addListener(listener);
FilterQuery filtre = new FilterQuery();
filtre.follow(usuarios); //you could filter by users
twitterStream.filter(filtre);

Таким образом, вы можете получать твиты от пользователей, которых вы хотите.

Вы должны проверить примеры Twitter4j для потокового API.

Если вы хотите фильтровать пользователей и получать твиты с надписью "США", вы должны сначала отфильтровать пользователей, а затем в StatusListener listener = new StatusListener() { //... a lot of things } часть вы можете создавать фильтры для твитов, которые вы получаете.

Другие вопросы по тегам