2012-05-02 7 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メソッドを使用することができます。

lookupUsers(String[])

ユーザーIDを持っていたら、あなたは、ユーザーが最後の20件のつぶやきを取得するには、次の方法を使用することができます。リツイートは含まれないことに注意してください。

getUserTimeline(long)

関連する問題