使用Twitter API访问Twitter流-在Java中

使用Twitter API访问Twitter流-在Java中,java,twitter,Java,Twitter,这是我第一次使用Twitter API。我正在编写一个基本应用程序,当用户键入一个短语时,它会返回最后15条带有该短语的tweet。如果他们键入用户名并单击“搜索用户”按钮,它将返回该用户最近15条左右的推文 我相信我已经完成了第一部分,但是我在想如何从特定用户那里调出tweet时有点困惑。任何进一步的指导都将不胜感激 package twitter; import java.awt.Button; import java.awt.TextArea; import java.awt.TextF

这是我第一次使用Twitter API。我正在编写一个基本应用程序,当用户键入一个短语时,它会返回最后15条带有该短语的tweet。如果他们键入用户名并单击“搜索用户”按钮,它将返回该用户最近15条左右的推文

我相信我已经完成了第一部分,但是我在想如何从特定用户那里调出tweet时有点困惑。任何进一步的指导都将不胜感激

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();
        }
    }
}
packagetwitter;
导入java.awt.Button;
导入java.awt.TextArea;
导入java.awt.TextField;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.awt.event.KeyAdapter;
导入java.awt.event.KeyEvent;
导入java.util.List;
导入twitter4j.Query;
导入twitter4j.QueryResult;
导入twitter4j.Tweet;
导入twitter4j.Twitter;
导入twitter4j.TwitterException;
导入twitter4j.TwitterFactory;
导入twitter4j.TwitterStream;
公共类SearchListener扩展KeyAdapter实现ActionListener{
私人按钮搜索按钮;
私人按钮搜索用户按钮;
私有文本字段搜索文本;
私人领域成果;
私人推特;
公共SearchListener(按钮searchButton、按钮searchUserButton、,
文本字段搜索文本,文本区域结果){
this.searchButton=searchButton;
this.searchUserButton=searchUserButton;
this.searchText=searchText;
这个结果=结果;
results.setText(“(准备搜索)”);
twitter=(新TwitterFactory()).getInstance();
}
@凌驾
已执行的公共无效操作(操作事件e){
doSearch();
}
私有void doSearch(){
String searchStr=searchText.getText();
results.setText(“搜索:“+searchStr+”\n”);
if(searchStr==null | | searchStr.length()==0){
返回;
}
试一试{
QueryResult result=twitter.search(新查询(searchStr));
List tweets=result.getTweets();
int i=0;
用于(Tweet-Tweet:tweets){
结果。追加(“+i+”:”);
results.append(“@”+tweet.getFromUser()+”-“
+getText());
结果。追加(“\n\n”);
i++;
}
结果。追加(“+i+”找到的推文总数\n”);
}捕获(twitter异常){
te.printStackTrace();
results.append(“搜索推文失败:+te.getMessage());
系统退出(-1);
}
}
@凌驾
public void keyTyped(KeyEvent e){
//results.append(e.getKeyChar()+“\n”);
如果(例如getKeyChar()=='\n'){
doSearch();
}
}
}

首先,您需要使用用户名作为键来查找用户ID。您可以使用以下twitter4j方法执行此操作:

一旦你有了一个用户ID,你就可以使用下面的方法来获取用户最近的20条推文。请注意,转发将不包括在内