Twitter4j не ищет хэштег, который существует в Twitter - PullRequest
0 голосов
/ 27 марта 2020

Я новичок в использовании этой библиотеки, и я делаю свой первый тест в Java. У меня две проблемы. Первая из них заключается в том, что запрос возвращает только 100 твитов, когда я установил query.setCount (100000);

Другая проблема заключается в том, что некоторые поиски по хештегам не возвращают результаты, но тот же поиск в Твиттере возвращает много твитов. Например, если мой запрос с # Coronavid19, у меня 98 результатов. Если запрос с #martesdetetas не возвращает твиты, но тот же поиск в Twitter нашел много твитов. Есть ли какие-то ограничения в отношении некоторых хэштегов, чтобы им не разрешали их искать? Или я что-то не так делаю?

Это мой код

//Metodo de busqueda que regresara todos los tweets relacionados a la busqueda de keywords
    public List searchForWord(String word){

        //List que contendra los tweets que arroje la busqueda
        List tweets = new ArrayList();

        try {

            //Inicializamos el objeto Twitter desde la clase Factory
            Twitter twitter = new TwitterFactory().getInstance();

            //Pasamos ConsumerKey and ConsumerSecret
            twitter.setOAuthConsumer(consumerKeyStr, consumerSecretStr);

            //Creamos el objeto AccessToken con los valores previamente inicializados
            AccessToken accessToken = new AccessToken(accessTokenStr,
                    accessTokenSecretStr);

            //Establecer el objeto AccessToken al objeto Twitter 
            twitter.setOAuthAccessToken(accessToken);

            //Definir el objeto query. El parametro del contructor de QUery es la palabra a buscar dentro de Twitter
            Query query = new Query(word);

            //Definir el tamano del resultset. En este ejemplo, el tamano se ha establecido en 10,000 entradas
            query.setCount(100000);

            //Ejecutar el metodo search en el objeto twitter. Los resultados se pasan a un objeto QueryResult que contiene un objeto Status por cada Tweet.
            QueryResult result = twitter.search(query);
            int total = 0;

            //Agregamos los resultados al objeto List que regresaremos
            for(Status status: result.getTweets()){
                System.out.println(status.getUser().getName()+" - "+status.getText());
                total++;
                if(status.getMediaEntities().length > 0){
                    MediaEntity[] mediaFiles = status.getMediaEntities();
                    for (MediaEntity mediaEntity : mediaFiles) {
                        System.out.println("-->"+mediaEntity.getMediaURL());
                    }
                }
            }

            System.out.println("TOTAL: "+total);

        } catch (TwitterException te) {
            //Imprime cualquier error que pueda ser asociado con este codigo
            System.out.println(te.getStatusCode());
            te.printStackTrace();
        }

        //Regresa una List con todos los tweets parte de la busqueda.
        return tweets;
    }


    public static void main(String[] args) {
        //Instanciando la clase actual a un objeto
        App search = new App();

        //Vista previa de los twwts encontrados hacia la consola principal
        search.searchForWord("#martesde");

    }
...