¿Utiliza las tendencias diarias de Twitter4j?

He estado trabajando en un pequeño programa en el que quiero leer los temas de moda de Twitter y almacenarlos en una base de datos. Actualmente estoy usando el método twitter4j getDailyTrends(), pero obtengo resultados extraños.

El código que tengo actualmente es:

        Twitter twitter = new TwitterFactory().getInstance();
        ResponseList<Trends> dailyTrends;

        dailyTrends = twitter.getDailyTrends();

        System.out.println();

        // Print the trends.
        for (Trends trends : dailyTrends) {
                    System.out.println("As of : " + trends.getAsOf());
                      for (Trend trend : trends.getTrends()) {
                            System.out.println(" " + trend.getName());
                       }
        }

Sin embargo, cuando el programa se ejecuta, muestra la misma lista de tendencias 24 veces. He intentado ejecutar el programa en diferentes días, sin embargo, la lista siempre es idéntica, sin importar en qué día ejecute el programa.

También intenté pasar el método getDailyTrends() a la fecha actual y obtuve los mismos resultados.

Agradecería cualquier ayuda con esto, me está volviendo loco. :)

EDITAR: El conjunto de resultados que sigo obteniendo muestra las tendencias de Twitter desde el 25.04.2012/XNUMX/XNUMX. Y no importa cuándo ejecuto el programa o qué fecha le doy, obtengo los mismos resultados.

EDIT2: OK, esto me ha estado molestando todo el día, finalmente encontré el código de ejemplo proporcionado por twitter4j para leer tendencias. Ejecuté su código en lugar del mío y tengo el mismo problema. Las tendencias tienen algunas semanas y nunca cambian. ¿Alguien ha logrado que este método funcione antes?

preguntado el 03 de mayo de 12 a las 13:05

3 Respuestas

getPlaceTrends(int woeid)

Devuelve los 10 temas más populares de un tema específico. AYUDA, si la información de tendencias está disponible para ello.

aflicción - El Yahoo! Where On Earth ID de la ubicación para la que se devolverá la información de tendencias. La información global está disponible usando 1 como el AYUDA.

Puede obtener los WOEID de diferentes ubicaciones con el siguiente código

Twitter twitter = new TwitterFactory().getInstance();
ResponseList<Location> locations;
locations = twitter.getAvailableTrends();
System.out.println("Showing available trends");
for (Location location : locations) {
    System.out.println(location.getName() + " (woeid:" + location.getWoeid() + ")");
}

Y luego, puede obtener las tendencias actuales de una ubicación específica usando su WOEID como se muestra a continuación

Trends trends = twitter.getPlaceTrends(2295414);
for (int i = 0; i < trends.getTrends().length; i++) {
    System.out.println(trends.getTrends()[i].getName());
}

Respondido 05 ago 13, 14:08

Uso twitter4j y esta es mi clase para obtener temas de tendencias de la ubicación que obtienes como parámetro, en este ejemplo "España"

import twitter4j.Location;
import twitter4j.ResponseList;
import twitter4j.Trends;
import twitter4j.Twitter;
import twitter4j.TwitterException;

public final class GetTrendingTopics {

    public static void main(String[] args) {

    try {

       ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("yourConsumerKey").setOAuthConsumerSecret("yourConsumerSecret").setOAuthAccessToken("yourOauthToken").setOAuthAccessTokenSecret("yourOauthTokenSecret");

        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();

        ResponseList<Location> locations;
        locations = twitter.getAvailableTrends();

        Integer idTrendLocation = getTrendLocationId("spain");

        if (idTrendLocation == null) {
        System.out.println("Trend Location Not Found");
        System.exit(0);
        }

        Trends trends = twitter.getPlaceTrends(idTrendLocation);
        for (int i = 0; i < trends.getTrends().length; i++) {
        System.out.println(trends.getTrends()[i].getName());
        }

        System.exit(0);

    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to get trends: " + te.getMessage());
        System.exit(-1);
    }
    }

    private static Integer getTrendLocationId(String locationName) {

    int idTrendLocation = 0;

    try {

        ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey("yourConsumerKey").setOAuthConsumerSecret("yourConsumerSecret").setOAuthAccessToken("yourOauthToken").setOAuthAccessTokenSecret("yourOauthTokenSecret");

        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();

        ResponseList<Location> locations;
        locations = twitter.getAvailableTrends();

        for (Location location : locations) {
        if (location.getName().toLowerCase().equals(locationName.toLowerCase())) {
            idTrendLocation = location.getWoeid();
            break;
        }
        }

        if (idTrendLocation > 0) {
        return idTrendLocation;
        }

        return null;

    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to get trends: " + te.getMessage());
        return null;
    }

    }
}

Respondido 30 Oct 14, 12:10

Recuerdo vagamente, pero ¿puedes intentar lo siguiente?

for (Trends trends : dailyTrends) {
                    System.out.println("As of : " + trends.getAsOf());

                     System.out.println(" " + trends.getTrendAt());

        }

contestado el 03 de mayo de 12 a las 13:05

Gracias por la respuesta. Probé lo que me sugeriste y recibí la misma lista de tendencias que recibí durante días :( - adam creswell

En ese caso, le sugiero que verifique qué versión de Twitter4J está usando y si no es un error de versión. Veo un error para getAsOf que devuelve una fecha incorrecta. jira.twitter4j.org/browse/TFJ-613 Si no está en la lista, le sugiero que informe un error allí: Sandeep Nair

Estaba usando la versión estable más reciente de twitter4j (2.2.5), probé la versión de instantánea más reciente (2.2.6) y tuve el mismo problema nuevamente. Me estoy quedando sin ideas ahora. - adam creswell

Otra actualización, parece que estoy recibiendo las tendencias del 25.04.2012/XNUMX/XNUMX, y he estado obteniendo estos mismos resultados durante unos días. Y siga obteniendo los mismos resultados al agregar una fecha aleatoria manualmente al método getDailyTrends(). - adam creswell

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.