0

Hey I would like to have the latest tweets from certain users that I will follow to be displayed on a page of my web app. So I followed the tutorial on the git of horsebird client but I don't know where I have to specify the users I want the messages from.

public class TwitterLatestTweets implements Runnable {
    private final static String BUNDLE_BASENAME = "configuration.twitter";
    private final static String CONSUMER_KEY = ResourceBundle.getBundle(
            BUNDLE_BASENAME).getString("consumerKey");
    private final static String CONSUMER_SECRET = ResourceBundle.getBundle(
            BUNDLE_BASENAME).getString("consumerSecret");
    private final static String TOKEN = ResourceBundle.getBundle(
            BUNDLE_BASENAME).getString("token");
    private final static String SECRET = ResourceBundle.getBundle(
            BUNDLE_BASENAME).getString("secret");
    private List<String> msgList = new ArrayList<String>();

    @Override
    public void run() {
        /**
         * Set up your blocking queues: Be sure to size these properly based on
         * expected TPS of your stream
         */
        BlockingQueue<String> msgQueue = new LinkedBlockingQueue<String>(100000);
        BlockingQueue<Event> eventQueue = new LinkedBlockingQueue<Event>(1000);

        /**
         * Declare the host you want to connect to, the endpoint, and
         * authentication (basic auth or oauth)
         */
        Hosts hosebirdHosts = new HttpHosts(Constants.STREAM_HOST);

        StatusesFilterEndpoint hosebirdEndpoint = new StatusesFilterEndpoint();

        Authentication hosebirdAuth = new OAuth1(CONSUMER_KEY, CONSUMER_SECRET,
                TOKEN, SECRET);

        ClientBuilder builder = new ClientBuilder().hosts(hosebirdHosts)
                .authentication(hosebirdAuth).endpoint(hosebirdEndpoint)
                .processor(new StringDelimitedProcessor(msgQueue))
                .eventMessageQueue(eventQueue);

        Client hosebirdClient = builder.build();
        hosebirdClient.connect();
        while (!hosebirdClient.isDone()) {
            try {
                String msg = msgQueue.take();
                msgList.add(msg);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            hosebirdClient.stop();

            for (String s : msgList) {
                System.out.println(s);
            }
        }
    }
}

Is it Constants.STREAM_HOST ? Could you give me an example with the white house twitter (https://twitter.com/whitehouse) ?

Ced
  • 15,847
  • 14
  • 87
  • 146

1 Answers1

1

You need to add a list of userIds to your endpoint, like this:

hosebirdEndpoint.followings(userIds);

You've got several examples here, in the same github project you've provided in your question. This one uses the same endpoint as in your post.

In here you can find Twitter's documentation on the endpoint, and the full list of the parameters you can use.

lrnzcig
  • 3,868
  • 4
  • 36
  • 50