twitter4j : Как получить текст твита с привязкой к хэш-тегу и URL-адресам

Я использую twitter4j для поиска и отображения твитов. Вот фрагмент кода

Query query = new Query(queryString);
                QueryResult result = twitter.search(query);

                for (Tweet tweet : result.getTweets()) {
                    System.out.pritnln(tweet.getFromUser() + ":" + tweet.getText());
                }

Здесь tweet.getText() возвращает обычный текст без тега привязки (простой текст, а не html), даже если он имеет хэштег и URL-адрес какого-либо веб-сайта. Как я могу получить текст в твиттере с тегом привязки, который вы видите в результатах поиска в твиттере?


person Amit Patel    schedule 28.03.2011    source источник
comment
это джава? Надо так пометить...   -  person mike3996    schedule 28.03.2011
comment
Почему бы вам просто не разобрать его из простого текста? Я не думаю, что есть поток со связанными хэштегами и закодированными URL-адресами.   -  person Philipp Hügelmeyer    schedule 28.03.2011


Ответы (2)


Вам нужно использовать методы EntitySupport для получения хэштегов и URL-адресов из каждого твита. URLEntity и HashtagEntity есть методы, сообщающие вам, где объект начинается и заканчивается в тексте твита, поэтому вы можете использовать эту информацию для вставки разметки ссылки. когда вы показываете твит.

Пример кода, который извлекает URL-адреса из последних твитов:

Twitter twitter = new TwitterFactory().getInstance();
Query query = new Query("lizardbill");
QueryResult result = twitter.search(query);

for (Tweet tweet : result.getTweets()) {
    System.out.println(tweet.getFromUser() + ":" + tweet.getText());
    for (URLEntity urle : tweet.getURLEntities()) {
        System.out.println(urle.getDisplayURL());
    }
}
person Bill the Lizard    schedule 08.10.2012

Используйте twitter-text-java. Он соответствует тому же синтаксису, что и Twitter.

person abraham    schedule 29.03.2011