我正在尝试创建一个应用程序,它将显示特定用户的所有现有推文以及新推文。我正在使用StreamingOperations
twitter 的 API 来获取实时推文。请参阅下面我的 Spring Controller 类的代码。
@Controller
@RequestMapping("/")
public class Controller {
private Twitter twitter;
private ConnectionRepository connectionRepository;
private DisplayUser displayUser;
@Inject
public TweetsFetcherController(Twitter twitter, ConnectionRepository connectionRepository,
DisplayUser displayUser) {
this.twitter = twitter;
this.connectionRepository = connectionRepository;
this.displayUser = displayUser;
}
@RequestMapping(method= RequestMethod.GET)
public String home(Model model) {
try {
TwitterProfile twitterProfile = twitter.userOperations().getUserProfile("shaunthomas999");
List<Tweet> tweets= twitter.timelineOperations().getUserTimeline(twitterProfile.getId(),30);
displayUser.setTweets(tweets);
model.addAttribute("displayUser", displayUser);
FilterStreamParameters filterStreamParameters = new FilterStreamParameters();
filterStreamParameters.follow(twitterProfile.getId());
StreamListener streamListener2 = new StreamListener() {
@Override
public void onTweet(Tweet tweet) {
List<Tweet> displayUserTweets = displayUser.getTweets();
displayUserTweets.add(tweet);
displayUser.setTweets(displayUserTweets);
}
@Override
public void onDelete(StreamDeleteEvent streamDeleteEvent) {
}
@Override
public void onLimit(int i) {
}
@Override
public void onWarning(StreamWarningEvent streamWarningEvent) {
}
};
twitter.streamingOperations().filter(filterStreamParameters, Arrays.asList(streamListener2));
Thread.sleep(1000);
} catch (InterruptedException interruptedException) {
LOGGER.error(interruptedException.getMessage());
}
return "home";
}
}
这DisplayUser
是我的模式,其中包含List<Tweet> tweets
属性之一。我想知道如何在tweets
发布新推文时显示 displayUser 列表中的更改(由onTweet
方法处理)。
我正在使用spring-boot-starter-social-twitter
我的实现。