Почему мой Твиттер?
Twitter - идеальное место для извлечения данных из. Вот несколько причин, почему это правда:
- Все твиты в Твиттере общедоступны
- Новые данные поступают в режиме реального времени, это означает, что у вас никогда не закончится свежая информация для тестирования
- У Twitter есть интересный API для разработчиков, из которого они могут извлекать данные, они также дружелюбны
- API-интерфейсы, предоставляемые Twitter, предоставляют простые способы извлечения твитов, относящихся к определенному пользователю, определенному слову / хэштегу или твитам в определенном месте
Начиная
Теперь, когда мы обосновали, почему мы используем эту платформу, давайте начнем собирать наши инструменты. В этом уроке мы будем использовать Java 8, но не стесняйтесь использовать вышеуказанные версии (хотя для их использования могут потребоваться некоторые настройки, а не твиты).
Мы будем использовать библиотеку Java под названием Twitter4J для подключения к API Twitter.
Получение ключа API Twitter
Получение ключа API Twitter необходимо для доступа к его данным, поскольку именно так Twitter отслеживает данные и количество запросов, которые наше приложение делает в Twitter.
Давайте создадим приложение Twitter и получим правильные ключи, чтобы двигаться дальше.
- Создайте приложение здесь
В форме выше создайте приложение с уникальным именем, именем веб-сайта (используйте веб-сайт-заполнитель, если у вас его нет) и описанием проекта. Примите условия (если вы это делаете) и перейдите на следующую страницу.
После создания проекта вы должны увидеть страницу со следующим заголовком:
- В информации ниже щелкните вкладку «Ключи и токены доступа», чтобы получить следующую информацию:
- Прокрутите вниз и нажмите «Создать токены доступа», чтобы получить информацию ниже:
Эти значения нам понадобятся позже, поэтому лучше оставить эту вкладку открытой.
Начало работы с Twitter4J
Twitter4J - это неофициальный Библиотека Java для API Twitter. С Twitter4J мы можем легко интегрировать наше Java-приложение с сервисом Twitter.
Зависимость от Maven
Для начала мы добавим соответствующую зависимость Maven в наш Java-проект.
Найдите последнюю версию зависимости от maven здесь.
Аутентификация
Мы добавили требуемую зависимость Maven сейчас. Пришло время поговорить с API и Twitter.
Чтобы начать разговор, нам нужно аутентифицировать наши звонки в Twitter, чтобы он знал, что только известный пользователь имеет доступ к данным. Для этого давайте настроим наши ключи, которые мы получили ранее.
статическая конечная строка CONSUMER_KEY = "вы-ключ";статическая конечная строка CONSUMER_SECRET = "секрет";
статическая конечная строка ACCESS_TOKEN = "токен";
статическая конечная строка ACCESS_TOKEN_SECRET = "токен-секрет";
public static Twitter getTwitterInstance ()
ConfigurationBuilder cb = новый ConfigurationBuilder ();
cb.setDebugEnabled (истина) bashbash
.setOAuthConsumerKey (CONSUMER_KEY)
.setOAuthConsumerSecret (CONSUMER_SECRET)
.setOAuthAccessToken (ACCESS_TOKEN)
.setOAuthAccessTokenSecret (ACCESS_TOKEN_SECRET);
TwitterFactory tf = новый TwitterFactory (cb.строить());
return tf.getInstance ();
Пример: отображение временной шкалы
В этом примере мы будем показывать несколько последних твитов из временной шкалы аутентифицированного пользователя. Мы сделаем это, используя экземпляр Status объекта Twitter как:
private static void showHomeTimeline (Twitter twitter)Список
пытаться
статусы = твиттер.getHomeTimeline ();
Система.вне.println ("Показана домашняя шкала.");
для (Статус статуса: статусы)
Система.вне.println (статус.getUser ().getName () + ":" + status.getText ());
Строка url = "https: // twitter.com / "+ статус.getUser ().getScreenName () + "/ status /"
+ статус.getId ();
Система.вне.println ("URL выше твита:" + url);
catch (TwitterException e)
е.printStackTrace ();
В результате должен получиться набор случайных твитов:
Переход по ссылке на твит часто приводит к самому твиту. Переход по ссылке из первого твита даст нам следующий результат:
Помимо имени пользователя и текста твита, Twitter API может предоставить много информации, которую можно получить с помощью следующих доступных методов:
статус.getSource ();статус.getCreatedAt ();
статус.getFavoriteCount ();
статус.getGeoLocation ();
статус.getLang ();
статус.getPlace ();
статус.getRetweetCount ();
статус.getUser ().getBiggerProfileImageURL ();
статус.getUser ().getEmail ();
статус.getUser ().getFollowersCount ();
статус.getUser ().getFriendsCount ();
Это дает много информации, относящейся к твиту и пользователю, опубликовавшему твит. К ним относятся не все методы, не стесняйтесь изучать все доступные методы.
Обратите внимание, что эти атрибуты могут быть чрезвычайно полезны, если ваше приложение зависит от большего количества данных.
Пример: опубликовать твит
В этом примере мы просто опубликуем новый твит из нашего кода, поскольку пользователь уже аутентифицирован. Давайте поместим сюда пример кода:
private static void updateTweet (Twitter twitter, String tweet) выбрасывает TwitterExceptionСтатус status = twitter.updateStatus (твит);
Система.вне.println ("Успешно обновил статус до [" + status.getText () + "].");
Опубликовать новый твит так просто.
Пример: твиты от определенного пользователя
Получить твиты другого пользователя очень легко, просто передайте имя пользователя, и API вернет несколько недавних твитов для пользователя.
Попробуем вытащить последние двадцать твитов из твиттер-аккаунта @linuxhint:
Вот пример кода:
Списокдля (Статус статуса: статусы)
Строка fmt = "@" + status.getUser ().getScreenName () + "-" + статус.getText ();
Система.вне.println (fmt);
Когда вы запустите эту программу, вы должны увидеть Tweets for LinuxHint.
Популярные приложения этого типа данных могут включать:
- Проведение анализа конкретных пользователей и их взаимодействия с миром
- Поиск влиятельных лиц в Твиттере и анализ тенденций их подписчиков и взаимодействия
- Мониторинг изменений подписчиков пользователя
Пример: поиск твитов по ключевому слову
Давайте сделаем еще один пример: получение самых последних твитов, содержащих ключевое слово. Это может быть чрезвычайно полезно, если вы хотите отслеживать конкретно упомянутые темы в мире Twitter или даже видеть, как упоминается ваш бизнес.
Допустим, мы хотим увидеть, как Twitter упоминает Linux:
// searchTerm = Linuxprivate static void searchTweets (Twitter twitter, String searchTerm) выдает исключение TwitterException
Запрос запроса = новый запрос ("источник:" + searchTerm);
QueryResult result = twitter.поисковый запрос);
для (Статус статуса: результат.getTweets ())
Система.вне.println ("@" + status.getUser ().getScreenName () + ":" + status.getText ());
Вот несколько практических способов использования этой информации:
- Создайте пространственный график того, где ваша компания упоминается больше всего в мире
- Проведите анализ настроений в твитах, чтобы узнать, является ли общее мнение о вашей компании положительным или отрицательным
- Создайте социальные графики самых популярных пользователей, которые пишут о вашей компании или продукте
Мы можем осветить некоторые из этих тем в будущих статьях.
API Twitter чрезвычайно полезен в приложениях для интеллектуального анализа данных и может предоставить обширную информацию об общественном мнении.