twitter4j - accès tweet de l'information, du Streaming API

Mon but est de collecter tous les tweets contenant les mots "France" et "Allemagne", et également de collecter les métadonnées associées (par exemple, la géo coordonnées jointe au tweet). Je sais que ces métadonnées est disponible, mais je ne peux pas comprendre comment accéder à la bibliothèque Java j'utilise : "twitter4j".

Ok, donc ce que j'ai si la mesure est prise à partir d'exemples de code sur le twitter4j site. Il affiche tous les tweets contenant mes mots clés choisis, tels qu'ils sont fournis en temps réel de Twitter Streaming API. J'appelle la méthode de filtrage sur mon TwitterStream objet, et cela fournit le flux. Mais j'ai besoin de plus de contrôle. À savoir, je voudrais être en mesure de:

1) écrire les tweets d'un fichier;
2) imprimer uniquement les 1000 premiers tweets;
3) l'accès à d'autres métadonnées attachées à la tweet (le filtre de la méthode se contente d'afficher le nom d'utilisateur et le tweet lui-même).

Voici le code que j'ai pour l'instant:

import twitter4j.FilterQuery;
import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.TwitterException;
import twitter4j.TwitterStream;
import twitter4j.TwitterStreamFactory;
import twitter4j.conf.ConfigurationBuilder;

public class Stream {
    public static void main(String[] args) throws TwitterException {

    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true);
    cb.setOAuthConsumerKey("bbb");
    cb.setOAuthConsumerSecret("bbb");
    cb.setOAuthAccessToken("bbb");
    cb.setOAuthAccessTokenSecret("bbb");

    TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
    StatusListener listener = new StatusListener() {

        public void onStatus(Status status) {
            System.out.println("@" + 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();
    String keywords[] = {"France", "Germany"};

    fq.track(keywords);

    twitterStream.addListener(listener);
    twitterStream.filter(fq);      
}
}
Besoin d'une aide. J'obtiens cette erreur ci-dessous. "Le type de nouvelles StatusListener(){} doit mettre en œuvre les hérité de la méthode abstraite StatusListener.onStallWarning(StallWarning)'
La version de Twitter4J utilisez-vous? Le TwitterStream classe ne semble pas être inclus dans la mienne. Je suis en 3.0.

OriginalL'auteur Andrew | 2012-02-22