Лучшая библиотека Java twitter? [закрытый]
на сайте twitter API перечислены 3 библиотеки Java twitter.
вы знаете других? Каков ваш опыт в поддержке, простоте использования, стабильности, сообществе и т. д.
7 ответов:
Я просто взглянул на них.
JTwitter определенно выглядит как самый слабый из трех. Он, похоже, не был обновлен в последнее время, не охватывает большую часть API Twitter и, похоже, не имеет никаких релизов, кроме первоначального. С другой стороны, это лицензия LPGL, поставляется в комплекте с тем небольшим дополнительным кодом, который ему нужен, и выглядит маленьким и простым для понимания.
два других, java-twitter и Twtter4J выглядят намного ближе по качеству. Оба покрывают основной API, и оба имеют все атрибуты обычных проектов с открытым исходным кодом: общедоступный репозиторий исходного кода, он-лайн документы, активные списки рассылки и недавнюю деятельность по разработке.
тем не менее, Twitter4J выглядит лидером. Из документов его покрытие API кажется более полным. Список рассылки, безусловно, более активен. Документы намного лучше. И самое главное для меня релизы были более частыми. в Java-твиттер одного выпуска до "0.9-моментальный снимок" выпустить около 4 месяцев назад. У Twitter4J было несколько выпусков за этот период времени, включая 2.0.0 и инкрементные выпуски до 2.0.8, исправляя проблемы и добавляя поддержку новых API Twitter.
Я собираюсь начать с Twitter4J; если вы не слышите назад, предположим, что это было просто здорово для меня.
кхм; JTwitter активно поддерживается, регулярно обновляется (версия 1.6.2 выпущен сегодня), и охватывает большую часть Twitter API.
отсутствует только метод настройки изображения профиля и несколько других параметров профиля. Кроме этого, он довольно полный. Обновления статуса, сроки, дружба, списки, поиск, потоковое и т. д.
Это также быстро и надежно. Twitter может быть слоеным в местах, а JTwitter имеет обходные пути и информативность исключения, чтобы сделать вашу жизнь проще.
как основной разработчик JTwitter, я довольно предвзят! Но отзывы от разработчиков, использующих JTwitter, также очень положительные.
Я использую Twitter4J и еще не было проблем с ним. На самом деле мне это очень нравится.
пример OAuth, который они дают на своем веб-сайте, является самой большой неприятностью-это не полезно. Вот мой код OAuthServlet, если вы заинтересованы (или кто-то еще). Я знаю, что этот вопрос довольно старый, поэтому я помещаю его здесь больше для результатов поиска.
package com.example.oauth; import java.io.PrintWriter; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import twitter4j.*; import twitter4j.http.*; @SuppressWarnings("serial") public class OAuthServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HttpSession sess = req.getSession(true); RequestToken requestToken = (RequestToken) sess.getAttribute("requestToken"); if (sess.getAttribute("twitter_user_id") != null) { resp.setContentType("text/plain"); PrintWriter out = resp.getWriter(); if (req.getRequestURI().indexOf("logout") > 3) { sess.removeAttribute("twitter_user_id"); out.println("You're now logged out."); } else { out.println("You're already logged in!"); } } else if (req.getRequestURI().indexOf("callback") > 3 && req.getParameter("oauth_token").length() > 0 && requestToken != null) { handleCallback(req, resp, sess); if (sess.getAttribute("oauth_previous") != null) { resp.sendRedirect((String) sess.getAttribute("oauth_previous")); sess.removeAttribute("oauth_previous"); } } else { sendToTwitter(resp, sess); sess.setAttribute("oauth_previous", req.getHeader("Referer")); } } private void sendToTwitter(HttpServletResponse resp, HttpSession sess) throws IOException { RequestToken requestToken = (RequestToken) sess.getAttribute("requestToken"); try { Twitter twitter = new TwitterCnx().registerOAuth().get(); requestToken = twitter.getOAuthRequestToken(); sess.setAttribute("requestToken", requestToken); resp.sendRedirect(requestToken.getAuthorizationURL()); } catch (TwitterException e) { PrintWriter out = resp.getWriter(); out.println(e.getStackTrace()); } } private void handleCallback(HttpServletRequest req, HttpServletResponse resp, HttpSession sess) throws IOException { RequestToken requestToken = (RequestToken) sess.getAttribute("requestToken"); sess.removeAttribute("requestToken"); String secret = req.getParameter("oauth_token"); resp.setContentType("text/plain"); PrintWriter out = resp.getWriter(); try { Twitter t = new TwitterCnx().registerOAuth().get(); AccessToken accessToken = t.getOAuthAccessToken(requestToken.getToken(), secret); long id = (long) t.verifyCredentials().getId(); storeAccessToken(id, accessToken,sess); sess.setAttribute("twitter_user_id", id); out.println("You're now logged in!"); } catch (TwitterException e) { out.println("Something went wrong. Sorry about that. Please try again."); } } private void storeAccessToken(Long id, AccessToken at, HttpSession sess) { //you probably want to persist this somewhere other than in sessions. sess.setAttribute("secret", at.getTokenSecret() ); sess.setAttribute("token", at.getToken()); //also, don't forget to persist the user id alongside the token. } }
Я использую класс TwitterCnx в качестве оболочки для twitter4j. Twitter. TwitterCnx определяет мой потребительский материал OAuth и возвращает объект Twitter. Это последний класс со статическими методами, поэтому я не создаю более одного объекта Twitter на экземпляр приложения.
для тех, кто все еще смотрит на этот вопрос, стоит упомянуть, что единственный API, который Twitter в настоящее время списки на своем сайте для Java это Twitter4J. так что, если вам нужно было больше убеждать, что это был тот, чтобы использовать, Ну, вот вы идете!
Я выбрал Twitter4j, потому что многие люди работают над этим. И его легко узнать некоторое содержание в интернете об этом.
там же TweetStream4J, который представляет собой Java-привязка к Twitter потокового API-интерфейс. Это довольно просто, и в отличие от последнего раза, когда я использовал его, автор обновил его, чтобы включить pom.XML-файл, так что вы можете построить его. Это довольно просто и быстро, когда я в последний раз использовал его (от Scala).