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);
}
}
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
Vous devez vous connecter pour publier un commentaire.
Après avoir regardé cela avec un œil neuf, et j'ai réalisé que la solution (qui était assez évident). L'édition de la partie suivante du code:
me permet d'accéder à d'autres métadonnées. Par exemple, si je veux accéder au tweet du jour, j'ai tout simplement besoin d'ajouter ce qui suit:
OriginalL'auteur Andrew
L'Erreur 401 vient lorsque l'API est en train d'essayer d'accéder à certaines informations qui est dans l'impossibilité d'atteindre à l'heure actuelle. Si vous avez besoin de vérifier l'autorisation qui sont autorisés sur twitter. Modifier pour LIRE, ÉCRIRE et ... pour le plein accès aux API. Ou il y a peut être un problème que vous pourriez être en utilisant le serveur proxy. Donc mentionner les détails du proxy en utilisant les commandes suivantes.
OriginalL'auteur user1580096
À écrire des tweets sur fichier:
OriginalL'auteur Giovanni