2012-11-24 15 views
12

Tìm kiếm trong các tweet công khai bằng cách sử dụng thư viện Twitter4j như thế nào?Twitter4j: Tìm kiếm các tweet công khai

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); 
     } 
    } 

này mang lại cho tôi một lỗi Authentication credentials are missing.

Trả lời

20

Bạn cần đăng ký ứng dụng của mình cho Twitter. Bạn chỉ có thể làm điều đó nếu bạn có tài khoản riêng của mình. Sau khi bạn có được ConsumerKey, ConsumerSecret, AccessTokenAccessTokenSecret (họ sẽ giới thiệu cho bạn afret bạn đăng ký ứng dụng của bạn), giải pháp đơn giản nhất là thay đổi mã ví dụ sau:

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

Nó hoạt động, cảm ơn bạn, đây chính xác là những gì tôi đang tìm kiếm – zest

3

bạn cần phải đăng ký ứng dụng của bạn để có được một OAuth Xác thực Consumerkey, consumersecret và cũng Accesstoken và Accesstokensecret và cung cấp những giá trị này đến lớp người xây dựng cấu hình.

0

tiêu dùng cặp khóa cho phép chương trình của bạn để sử dụng API Twitter và mã thông báo truy cập về cơ bản cho bạn biết là tài khoản người dùng Twitter cụ thể của bạn