我使用Twitter4J连接twitter。在这里,我使用getUserTimeLine()获取推文,但也出现了转发和回复。如何使用getUserTimeLine()排除转推和回复,因为我想从特定用户检索?
Scanner input = new Scanner(System.in);
Twitter twitter1 = tf.getInstance();
List<Status> tweet;
System.out.print("Username : ");
String user = input.nextLine();
tweet = twitter1.getUserTimeline(user);
System.out.println("Show Timeline @" + user);
for (Status status : tweet) {
System.out.println("Tweet : " + status.getText());
}
答案 0 :(得分:0)
查看twitter docs,有可能
使用exclude_replies
和include_rts
可选选项排除RT和回复。
但这些选项似乎不存在于Twitter4J中。 (grepped代码,但没有找到它们)
答案 1 :(得分:0)
您可以尝试使用isRetweet()方法,如果此状态为转推,则会返回true
。如果此状态是对其他某些推文的响应,则getInReplyToStatusId()方法将返回值&gt; 0。
在Java 8流中,您可以简单地过滤
tweet = tweet.stream().filter(status -> !status.isRetweet() && status.getInReplyToStatusId()==0).collect(Collectors.toList());