Подтвердить что ты не робот

Twitter4j: поиск публичных твитов

Как искать в публичных твитах, используя библиотеку Twitter4j?

public static void main(String[] args) {
        Twitter twitter = new TwitterFactory().getInstance();
        try {
            Query query = new Query("Cocaine");
            QueryResult result;
            do {
                result = twitter.search(query);
                List<Status> tweets = result.getTweets();
                for (Status tweet : tweets) {
                    System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
                }
            } while ((query = result.nextQuery()) != null);
            System.exit(0);
        } catch (TwitterException te) {
            te.printStackTrace();
            System.out.println("Failed to search tweets: " + te.getMessage());
            System.exit(-1);
        }
    }

Это дает мне ошибку Authentication credentials are missing.

4b9b3361

Ответ 1

Вам необходимо зарегистрировать свое приложение для Twitter. Вы можете сделать это, только если у вас есть личный аккаунт. После того как вы получите ConsumerKey, ConsumerSecret, AccessToken и AccessTokenSecret (они будут представлены вам после регистрации приложения), самое простое решение - изменить код на следующий пример:

public static void main(String[] args) {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
          .setOAuthConsumerKey("yourConsumeKey")
          .setOAuthConsumerSecret("yourConsumerSecret")
          .setOAuthAccessToken("yourAccessToken")
          .setOAuthAccessTokenSecret("yourTokenSecret");
    TwitterFactory tf = new TwitterFactory(cb.build());
    Twitter twitter = tf.getInstance();
        try {
            Query query = new Query("query");
            QueryResult result;
            result = twitter.search(query);
            List<Status> tweets = result.getTweets();
            for (Status tweet : tweets) {
                System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
            }

            System.exit(0);
        } catch (TwitterException te) {
            te.printStackTrace();
            System.out.println("Failed to search tweets: " + te.getMessage());
            System.exit(-1);
        }
}

Ответ 2

вам необходимо зарегистрировать свое приложение, чтобы получить ключ пользователя аутентификации OAuth, consumerecret, а также Accesstoken и Accesstokensecret и предоставить эти значения классу компоновщика конфигурации.

Ответ 3

пользовательская пара ключей разрешает вашей программе использовать API Twitter, и маркер доступа по существу подписывает вас как вашу конкретную учетную запись пользователя Twitter