0

TwitterAPIを使用するのはこれが初めてです。私は、ユーザーがフレーズを入力すると、そのフレーズを含む最後の15件のツイートを返す基本的なアプリケーションを作成しています。ユーザー名を入力して[ユーザーの検索]ボタンをクリックすると、そのユーザーからの過去15件程度のツイートが返されます。

最初の部分は完了したと思いますが、特定のユーザーからのツイートを表示する方法を理解するのに少し行き詰まっています。それ以上のガイダンスは大歓迎です。

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

1 に答える 1

0

最初に、ユーザーのスクリーン ネームをキーとして使用して、ユーザーの ID を検索する必要があります。これを行うには、次の twitter4j メソッドを使用できます。

lookupUsers(文字列[])

ユーザー ID を取得したら、次のメソッドを使用して、ユーザーによる最新の 20 個のツイートを取得できます。リツイートは対象外となりますのでご注意ください。

getUserTimeline(ロング)

于 2012-05-02T04:24:22.637 に答える