TweetJMx
Estrenando el blog
Desde hace algunos meses me he vuelto adicto a twitter, asi que ayer que tuve un tiempo libre me puse a escribir un cliente, mientras estuve estudiando la documentación twitter4j-2.2.1 me vinieron muchas ideas a la cabeza, pero siempre es mas facil y rapido empezar en la consola.
La secuencia de acceso es simple
- Se registra la aplicación en twitter
- El usuario por medio de un link debe autorizar a la aplicación para acceder a su cuenta
- Twitter responde con un PIN
- Y el usuario proporciona el PIN al cliente
- Finalmente el cliente puede acceder a la cuenta por medio de 2 valores (Token y Token secret) (El Equivalente a su Usr y Pass pero para esta aplicación específicamente)
Así que les muestro mi ejemplo muy basico de como manejar esta API
- Primero que nada es necesario registrar una aplicación en twitter (Eso nos dara 2 claves) que vienen siendo como el Usr y pass (De la aplicación) para conectar a twitter (Las de TweetJMx vienen en el código)
- Después obtener acceso de una cuenta (Habría hecho una pero ayer llegue muy cansado)
La intencion es agregarle mas funciones, por el momento solo actualiza, lee los ultimos tweets y retwitea
La API es muy fácil de utilizar, prácticamente me limito a llamar a las funciones de twitter4j
import java.util.List;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;
/**
*
* @author CybJer
*/
public class TweetJMx {
public static Twitter twitter = new TwitterFactory().getInstance();
public static AccessToken aTkn;
public static boolean analize(String cmd) {
try {
if (cmd.equalsIgnoreCase("")) {
return false;
}
if (cmd.matches("ls{1}")||cmd.matches("dir{1}")) {
readTweets();
} else if(cmd.matches("(rt-){1}[0-9]+")){
retweet(Long.parseLong(cmd.split("-")[1]));
}
else {
update(cmd);
}
} catch (Exception ex) {
System.out.println("Error:\n" + ex);
}
return true;
}
public static void main(String[] args) throws TwitterException {
// Claves aplicacion
twitter.setOAuthConsumer("jtjDcIRHXwtJtG0Vs9JAyg", "WEwmiYIsnErWsslxXz5zERKs1ZxV4gfWK24RYtDOc");
auth();
/*auth se encarga de obtener la liga de autorizacion, Obtiene el PIN y muestra el Token y Token Sectret del usuario*/
// Claves de usuario
// aTkn = new AccessToken(/*token*/"",/*tokensecret*/ "");/*Aqui se pueden ingresar directamente el token y token secret para no solicitar nuevos por PIN */
twitter.setOAuthAccessToken(aTkn);
twitter.verifyCredentials();
String cmd;
do {
System.out.print("Tw: ");
cmd = System.console().readLine();
} while (analize(cmd.trim()));
System.exit(0);
}
public static void update(String update) throws TwitterException {
twitter.updateStatus(update);
}
public static void retweet(long id) throws TwitterException {
twitter.retweetStatus(id);
}
public static void readTweets() throws TwitterException {
List<Status> statuses = new ArrayList();
statuses = twitter.getFriendsTimeline();
System.out.println("Tweets: ");
Status status = null;
for (int i = statuses.size() - 1; i >= 0; i--) {
status = statuses.get(i);
System.out.println(status.getId() + " : " + status.getUser().getName() + ":\n" + status.getText());
}
}
public static void auth() throws TwitterException{
RequestToken requestToken = twitter.getOAuthRequestToken();
System.out.println("Url: \n" + requestToken.getAuthorizationURL() + "\n\n");
String pin;
while (aTkn == null) {
System.out.print("Pin: ");
pin = System.console().readLine();
try {
aTkn = twitter.getOAuthAccessToken(requestToken, pin);
} catch (TwitterException ex) {
System.out.println("Invalid");
}
}
System.out.println("Token: " + aTkn.getToken());
System.out.println("Token secret: " + aTkn.getTokenSecret());
}
}
Cabe mencionar que esta diseñado especificamente con propositos didacticos y personales
Adjunto el proyecto de netbeans
Adjunto | Tamaño |
---|---|
TweetJMx.zip | 547.9 KB |
- CybJer's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
wouu interesante yo se poco
wouu interesante yo se poco de programacion ando en estudio pero si requieres conejillos de inidias que diga tester adelate