2016-07-22 6 views
1

Ich habe codiert, um bestimmte Tweets von bestimmten Standorten mithilfe von Such-Tweet zu finden. Aber ich möchte den Tweet herausfinden, der vom letzten Jahr bis jetzt gepostet wurde. Ich erhalte heute nur das Ergebnis der neuesten Tweets. Wie kann ich meinen Code ändern? dies ist mein Code mit Java und Twitter4J-Core-3.0.5.jarWie bekomme ich Tweets vom letzten Jahr bis jetzt mit Twitter API in Java?

import twitter4j.GeoLocation; 
import twitter4j.Query; 
import twitter4j.QueryResult; 
import twitter4j.Status; 
import twitter4j.Twitter; 
import twitter4j.TwitterException; 
import twitter4j.TwitterFactory; 
import twitter4j.auth.AccessToken; 

public class TweetFromParticularLocation { 



    public static void main(String[] args) { 
//  Twitter twitter= new TwitterFactory().getInstance(); 
//  
//  twitter.setOAuthConsumer(TWITTER_CONSUMER_KEY, TWITTER_SECRET_KEY); 
//  twitter.setOAuthAccessToken(new AccessToken(TWITTER_ACCESS_TOKEN,TWITTER_ACCESS_TOKEN_SECRET)); 

     String CONSUMER_KEY = "key"; 
      String CONSUMER_KEY_SECRET = "key"; 

     Twitter twitter= new TwitterFactory().getInstance(); 

     twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_KEY_SECRET); 

     String accessToken = "key"; 
     String accessTokenSecret = "key"; 
     twitter.setOAuthAccessToken(new AccessToken(accessToken,accessTokenSecret)); 

     try { 
      Query query = new Query("#jumatberkah"); //kalau tweet nya kososng, maka outputnya terminated 

      //-6.914744, 107.609810 -- latitude, longitude bandung 
      //-6.2115, 106.8452 -- latitude, longitude jakarta 
      //-.7893, 113.9213 -- latitude, longitude indonesia 

      GeoLocation location = new GeoLocation(-6.2115, 106.8452); //latitude, longitude 
      String unit = Query.MILES; // or Query.MILES; Query.KILOMETERS; 
      query.setGeoCode(location, 1, unit); //location, radius, unit 

      QueryResult result; 

      do { 
       result = twitter.search(query); 
       List<Status> tweets = result.getTweets(); 

       for (Status tweet : tweets) { 
        System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText()+"\n"); 
       } 

      } while ((query = result.nextQuery()) != null); 

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

    } 

} 

Antwort

1

Die Twitter public Search API nur in der Zeit eine Auswahl von Tweets bietet für bis zu einer Woche zurück (7 Tage). Wenn Sie weiter zurück suchen müssen, müssen Sie stattdessen die kommerzielle Gnip Historical APIs von Twitter verwenden.

+0

oh ya? Ich weiß das bereits ... also, wie kann ich Gnip Historical APIs verwenden? Hast du eine Probe? –

+0

können Sie mir Beispielcode für die Verwendung von Gnip Historical APIs oder den Link @andypiper? –

+0

Es gibt eine Reihe von Beispielen auf den Gnip-Support-Seiten. http://support.gnip.com/code/search_api.html –