2012-11-24 3 views
12

Wie sucht man in öffentlichen Tweets mit der Twitter4j-Bibliothek?Twitter4j: Suche nach öffentlichen Tweets

public static void main(String[] args) { 
     Twitter twitter = new TwitterFactory().getInstance(); 
     try { 
      Query query = new Query("Cocaine"); 
      QueryResult result; 
      do { 
       result = twitter.search(query); 
       List<Status> tweets = result.getTweets(); 
       for (Status tweet : tweets) { 
        System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText()); 
       } 
      } while ((query = result.nextQuery()) != null); 
      System.exit(0); 
     } catch (TwitterException te) { 
      te.printStackTrace(); 
      System.out.println("Failed to search tweets: " + te.getMessage()); 
      System.exit(-1); 
     } 
    } 

Das gibt mir einen Authentication credentials are missing. Fehler

Antwort

20

Sie müssen Ihre App für Twitter registrieren. Sie können das nur tun, wenn Sie Ihr eigenes privates Konto haben. Nachdem Sie ConsumerKey erhalten, ConsumerSecret, AccessToken und AccessTokenSecret (sie dargestellt werden, um Sie afret Sie Ihre Anwendung registrieren), ist die einfachste Lösung, um den Code zu dem folgenden Beispiel zu ändern:

public static void main(String[] args) { 
    ConfigurationBuilder cb = new ConfigurationBuilder(); 
    cb.setDebugEnabled(true) 
      .setOAuthConsumerKey("yourConsumeKey") 
      .setOAuthConsumerSecret("yourConsumerSecret") 
      .setOAuthAccessToken("yourAccessToken") 
      .setOAuthAccessTokenSecret("yourTokenSecret"); 
    TwitterFactory tf = new TwitterFactory(cb.build()); 
    Twitter twitter = tf.getInstance(); 
     try { 
      Query query = new Query("Cocaine"); 
      QueryResult result; 
      result = twitter.search(query); 
      List<Status> tweets = result.getTweets(); 
      for (Status tweet : tweets) { 
       System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText()); 
      } 

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

Es funktioniert, danke, das ist genau das, was ich gesucht habe – zest

3

Sie benötigen, um Ihre Anwendung registrieren ein OAuth-Authentifizierung Consumerkey, consumersecret und auch Accesstoken und Accesstokensecret und liefern diese Werte in die Konfigurations Builder-Klasse.

0

Verbraucher-Schlüsselpaar autorisiert Ihr Programm um die Twitter API zu verwenden, und das Zugangstoken Sie im Wesentlichen als Ihr spezifisches Twitter Benutzerkonto anmeldet