最好的Java的Twitter库?

Twitter的API网站列出了3个Java的Twitter库。

  • Twitter4j
  • Java的叽叽喳喳
  • jtwitter

你认识别人吗? 你有什么经验支持,易用性,稳定性,社区等

我认为Twitter4j是最好的一个它是最新的API

我只是看看他们。

JTwitter绝对看起来是三者中最弱的一个。 它最近似乎没有更新,并没有涵盖大部分的Twitter API,除了最初的版本之外似乎没有任何发布。 另一方面,它是LPGL许可的,它包含了它所需要的额外代码,看起来小而简单易懂。

另外两个,java-twitter和Twtter4J的质量更接近。 两者都涵盖了核心API,并且都具有所有常规开源项目的function:可公开获得的源代码库,在线文档,活动邮件列表和最近的开发活动。

不过,Twitter4J看起来是领导者。 从文档看,API的覆盖范围似乎更加完整。 邮件列表肯定比较活跃。 文档好多了。 而对我来说最重要的是,发布更频繁。 java-twitter有一个版本,大约4个月前发布了“0.9-SNAPSHOT”版本。 Twitter4J在这段时间内已经发布了几个版本,其中包括2.0.0和2.0.8版本的增量版本,解决了问题并增加了对新的Twitter API的支持。

我将从Twitter4J开始; 如果你没有听到,就认为这对我很好。

咳咳; JTwitter是积极维护,定期更新(版本1.6.2今天发布),并涵盖了大部分的Twitter API。

这只是缺less一个方法来设置您的个人资料图片和一些其他configuration文件设置。 除此之外,这是相当完整的。 状态更新,时间表,友谊,列表,search,stream媒体等

这也是快速和强大的。 推特可以在地方flaky和JTwitter有变通和信息的例外,使您的生活更轻松。

作为主要的JTwitter开发者,我相当有偏见! 但使用JTwitter的开发人员的反馈也非常积极。

我使用Twitter4J,并没有与它的问题。 我其实很喜欢

他们在网站上给出的OAuth示例是最大的麻烦 – 这没有帮助。 这是我的OAuthServlet代码,如果你有兴趣(或其他人)。 我知道这个问题是相当老,所以我把它放在这里更多的search结果。

 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对象。

对于仍在研究这个问题的人来说,值得一提的是,Twitter 目前在其网站上列出的Java唯一的API是Twitter4J。 所以,如果你还需要更有说服力的话,那就去这里吧!

我select了Twitter4j,因为很多人都在努力。 而且它在网上很容易find一些内容。

TweetStream4J也是Twitter Streaming API的Java绑定。 这非常简单,而且与上次使用它不同,作者已经将其更新为包含pom.xml文件,以便您可以构build它。 当我上次使用它(来自Scala)时,它非常简单和快速。