2012-05-02 5 views
0

Twitter API를 처음 사용했습니다. 나는 사용자가 어구를 타자를 칠 때, 어구를 가진 마지막 15의 트윗을 돌려 보내는 기본적인 신청을 쓰고있다. 사용자 이름을 입력하고 "사용자 검색"버튼을 클릭하면 해당 사용자로부터 최근 15 개의 트윗을 반환합니다.Twitter API를 사용하여 Twitter 스트림에 액세스 - Java에서

나는 첫 번째 부분을 완성했다고 믿지만, 특정 사용자로부터 트윗을 가져 오는 방법을 알아내는 데 조금 어려움이있다. 그 이상의 지침은 매우 높이 평가됩니다.

package twitter; 

import java.awt.Button; 
import java.awt.TextArea; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 

import java.util.List; 

import twitter4j.Query; 
import twitter4j.QueryResult; 
import twitter4j.Tweet; 
import twitter4j.Twitter; 
import twitter4j.TwitterException; 
import twitter4j.TwitterFactory; 
import twitter4j.TwitterStream; 

public class SearchListener extends KeyAdapter implements ActionListener { 
    private Button searchButton; 
    private Button searchUserButton; 
    private TextField searchText; 
    private TextArea results; 

    private Twitter twitter; 

    public SearchListener(Button searchButton, Button searchUserButton, 
      TextField searchText, TextArea results) { 
     this.searchButton = searchButton; 
     this.searchUserButton = searchUserButton; 
     this.searchText = searchText; 
     this.results = results; 

     results.setText("(ready for search)"); 

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

    @Override 
    public void actionPerformed(ActionEvent e) { 
     doSearch(); 
    } 

    private void doSearch() { 
     String searchStr = searchText.getText(); 
     results.setText("searching for: " + searchStr + "\n"); 
     if (searchStr == null || searchStr.length() == 0) { 
      return; 
     } 

     try { 

      QueryResult result = twitter.search(new Query(searchStr)); 
      List<Tweet> tweets = result.getTweets(); 
      int i = 0; 
      for (Tweet tweet : tweets) { 
       results.append("" + i + ": "); 
       results.append("@" + tweet.getFromUser() + " - " 
         + tweet.getText()); 
       results.append("\n\n"); 
       i++; 
      } 
      results.append("" + i + " total tweets found\n"); 

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

    @Override 
    public void keyTyped(KeyEvent e) { 
     // results.append(e.getKeyChar() + "\n"); 
     if (e.getKeyChar() == '\n') { 
      doSearch(); 
     } 
    } 
} 

답변

0

먼저 화면 이름을 키로 사용하여 사용자의 ID를 조회해야합니다. 이 작업을 수행하려면 다음 twitter4j 방법을 사용할 수 있습니다 : 사용자 ID가 있으면

lookupUsers(String[])

, 당신은 사용자가 지난 20 개 트윗을 얻기 위해 다음과 같은 방법을 사용할 수 있습니다. 리트 윗은 포함되지 않습니다.

getUserTimeline(long)

관련 문제