1

我正在尝试创建一个应用程序,它将显示特定用户的所有现有推文以及新推文。我正在使用StreamingOperationstwitter 的 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我的实现。

4

0 回答 0