2016-07-20 19 views
0

Ich benutze diesen Code ich bekomme einen Fehler TwitterException 429 versuchen, die Tweets fecth. Ich möchte ganze Tweets von Twitter-Konto von Anfang an fecte. Wie löst man das Problem mit der Twitter Rate Limit?Twitter4j Wie bekomme ich twitter Tweets von Tweets Tweets

int limitRateCounter=0; 
int countOfTweets=0; int numberOfTweets = 3500; long lastID = Long.MAX_VALUE; ArrayList<Status> status = new ArrayList<Status>();while (status.size() < numberOfTweets) { try {.out.print("\nlimit counter = "+limitRateCounter);.out.print("\t tweetsCounter = "+countOfTweets); 
List<Status> listOfStatus= 
twitter.getUserTimeline(tweeterHandle,pg); 
/* making twitter request */ 
countOfTweets=countOfTweets+listOfStatus.size(); 
status.addAll(listOfStatus); 
limitRateCounter++; 
// println("Gathered " + tweets.size() + " tweets"); 
for (Status t: status) 
if(t.getId() < lastID) lastID = t.getId(); 
} 
catch (TwitterException te) { 
System.out.println("Couldn't connect: " + te); 
//twitter=getTwitterDetails2(); 
break; 
}; 
pg.setMaxId(lastID-1); /* add pagging max id */ 
} 

nach 120 Anfrage .getUserTimeline (tweeterHandle, pg); Methode nicht abrufen neue Tweets nach einiger Zeit erhalten Ausnahme.

Antwort

0

Twitter4j verwendet Twitter API, um auf Twitter-Daten zuzugreifen. Diese API hat Grenzen in der Anzahl von Anrufungen wie hier angegeben:

Sie scheinen gerade dieses Problem konfrontiert werden. Grundsätzlich muss Ihr Code warten, bevor Sie einen weiteren Anruf tätigen, bis Sie wieder innerhalb der API-Ratengrenzen sind. Berücksichtigen Sie, dass das Ratenlimit pro "Zugriffstoken" ist, wie in der Dokumentation angegeben, so dass Sie die Anzahl der Aufrufe Ihres Codes erhöhen können, wenn Sie ihm mehr Zugriffstoken zur Verfügung stellen, aber am Ende haben Sie eine (größere) Grenze.

+0

dank BitExodus Sie jede andere Java-API kennen, die mir eine tweitter Geschichte gibt. – user3698282

+0

Ich verwende 2 Tokens für steigende Anrufe, aber zweitens keine neuen Tweets abrufen. – user3698282

+0

Das Problem, mit dem Sie konfrontiert sind, ist nicht in der Java-Bibliothek, ist in der API Twitter bietet, die Rate Grenzen hat (ich meine Twitter-Server). Die Java-Bibliothek ist nur ein Werkzeug, mit dem Sie die Twitter-API aufrufen können und jede andere Bibliothek wird das gleiche Problem haben. Sie können versuchen, 15 Minuten zu warten, bevor Sie erneut anrufen, wenn das Limit erreicht ist. – BitExodus

0

erstellen mehrere Konten auf Twitter (10) dann setzen Zugriffstoken in Array