Twitter4j:显示所有推文,在特定用户帐户上搜索单词

时间:2016-09-14 18:10:48

标签: java twitter twitter4j

我想查找特定用户帐户中有特定字词的所有推文。

String searchWord = "cat";
String userAccount = "....";

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
      .setOAuthConsumerKey("xxxxx")
      .setOAuthConsumerSecret("xxxxx")
      .setOAuthAccessToken("xxxxx")
      .setOAuthAccessTokenSecret("xxxxx");

TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();

此方法会在String userAccount中为我提供所有推文:

List<Status> statusList = twitter.getUserTimeline(userAccount);
for (Status status : statusList) {
    System.out.println(status.getUser().getName() + " : " + status.getText());
}

此方法为我提供了包含搜索字词的所有推文,但随机用户:

Query query = new Query(searchWord);
    QueryResult result = twitter.search(query);
    for (Status status : result.getTweets()) {
        System.out.println("@" + status.getUser().getScreenName() + ":" + status.getText());
}

如何加入这两种方法,在帐号userAccount中找到searchWord中包含字词的所有推文。

1 个答案:

答案 0 :(得分:1)

如果您希望获得特定用户的特定字词的所有推文,您应该使用第一种方法并仅显示带有您想要的字词的推文。换句话说:

String yourstring = "your text";
List<Status> statusList = twitter.getUserTimeline(userAccount);
 for (Status status : statusList) {
  if(status.getText().toLowerCase().contains(yourstring)){
    System.out.println(status.getUser().getName() + " : " + status.getText());
  }
 }