L'API twitter site répertorie plus de 3 java twitter libaries.
Connaissez vous d'autres? Quelles sont vos expériences à l'appui, la facilité d'utilisation, la stabilité, la communauté, etc.
L'API twitter site répertorie plus de 3 java twitter libaries.
Connaissez vous d'autres? Quelles sont vos expériences à l'appui, la facilité d'utilisation, la stabilité, la communauté, etc.
J'ai juste pris un coup d'oeil.
JTwitter certainement ressemble le plus faible des trois. Il ne semble pas avoir été mis à jour ces derniers temps, ne permet pas de couvrir une grande partie de l'API Twitter, et ne semble pas avoir de rejets en plus de la première. Sur le plan positif, il est sous licence LGPL, vient emballé avec le peu de code supplémentaire dont il a besoin, et a l'air tout petit et simple à comprendre.
Les deux autres, java twitter et Twtter4J y regarder de très près à la qualité. Les deux portent sur l'API de base, et les deux ont toute la panoplie de la normale de projets open source: le code source est publiquement disponible référentiel, sur la ligne de docs, active listes de diffusion, et le développement récent de l'activité.
Cependant, Twitter4J semble être le chef de file. De la documentation, son API couverture semble être plus complet. La liste de diffusion est certainement plus actif. Les docs sont beaucoup mieux. Et le plus important pour moi, les rejets ont été de plus en plus fréquentes. java-twitter est l'une de libération, la "0.9-SNAPSHOT" la libération d'environ 4 mois. Twitter4J a eu plusieurs versions de cette période de temps, y compris 2.0.0 et supplémentaires communiqués via 2.0.8, en résolvant des problèmes et en ajoutant le support pour la nouvelle Api Twitter.
Je vais commencer avec Twitter4J; si vous n'entendez pas de retour, à supposer qu'il a été tout simplement génial pour moi.
Ahem; JTwitter est activement maintenu, régulièrement mis à jour (version 1.6.2 publié aujourd'hui), et couvre la plupart de l'API Twitter.
Il manque seulement une méthode pour le réglage de votre image de profil et de quelques autres paramètres de profil. Autre que cela, il est assez complet. Mises à jour de statut, des échéanciers, des amitiés, des listes, des recherches, la diffusion, etc.
Il est aussi rapide et robuste. Twitter peut être feuilletée dans des lieux et JTwitter a des solutions de rechange et instructif exceptions pour rendre votre vie plus facile.
Le principal JTwitter développeur, je suis plutôt partial! Mais les commentaires des développeurs utilisant JTwitter est également très positif.
J'utilise Twitter4J et n'ont pas encore eu un problème avec elle. En fait, j'aime beaucoup.
OAuth exemple qu'ils donnent sur leur site web est la plus grande nuisance -- il n'est pas utile. Voici mon OAuthServlet code si vous êtes intéressés (ou quelqu'un d'autre). Je sais que cette question est assez vieux, donc je vais mettre ici plus pour les résultats de recherche.
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.
}
}
J'utilise la classe TwitterCnx comme un wrapper pour twitter4j.Twitter. TwitterCnx définit mon OAuth consommateur trucs et renvoie un Twitter objet. C'est un final en classe avec des méthodes statiques, donc je ne pas produire plus d'un Twitter objet par instance de l'application.
Pour quiconque cherche toujours à cette question, il convient de mentionner que la seule API Twitter répertorie actuellement sur son site web pour Java est Twitter4J. Donc, si vous avez besoin de plus convaincant que ce fut le seul à utiliser, bien, ici vous allez!
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.