Echando código: ¿Como mandar mensajes a mi cuenta de Yahoo Messenger desde Java?

Si bien yo soy un fanático de el protocolo Jabber, por ser abierto, tengo que admitir que lo que uso en el trabajo y con mi familia en Yahoo Messenger; Si bien el cliente de Linux es una porquería, eso lo compenso utilizando un cliente Open Source llamado Gaim, ¡el cual es arrechisimo!

Una de mis tareas como SA es monitorear aplicaciones en tiempo real y algo que he querido hacer desde hace tiempo es enviarme los mensajes de ciertas bitacoras (como /var/log/messages) a mi sesión de messenger. Es una aplicación perfecta, ya que el cliente ya está escrito, sólo tengo que redireccionar la salida a mi cliente y listo.

Como buen fanatico de Java, me conseguí en Source Forge una librería llamada JYMGS la cual habla el protocolo de Yahoo Messenger utilizando Java. Ahora la pregunta era: ¿Que tán fácil es de usar?

Bueno, me tomó sólo dos clases hacer un “HelloWorld” en Java. Primero, por razones de abstración de el API, necesito un listener el cual va a reaccionar a los eventos de Yahoo (como desconexión, conexiones, etc). La implementación más sencilla es simplemente esta (heredo de un ‘Adaptor’):

   1:import ymsg.network.event.SessionAdapter;
2:public class YahooSession extends SessionAdapter {
3: // Empty
4:}

Y luego la clase que hace las llamadas:

   1:import ymsg.network.Session;
2:import ymsg.network.StatusConstants;
3:import ymsg.network.event.SessionAdapter;
4:public final class YahooPing {
5: public static void main (String [] args) throws Exception {
6: Session session = null;
7: try {
8: session = new Session();
9: session.addSessionListener(new YahooSession());
10: session.setStatus(StatusConstants.STATUS_INVISIBLE);
11: session.login(args[0], args[1]);
12: if (session.getSessionStatus() == StatusConstants.MESSAGING) {
13: session.sendMessage(args[2], args[3]);
14: try {
15: Thread.sleep(5*1000);
16: } catch(InterruptedException e) {
17: // Empty
18: }
19: session.logout();
20: } else {
21: session.reset();
22: }
23: } catch(Exception e) {
24: if (session != null) {
25: session.reset();
26: }
27: }
28: }
29:}

Aquí les muestro como mandar un mensaje como el usuario ‘robot’ a el usuario ‘angelnegro’:

[josevnz@XXX YahooPing]$ java YahooPing robota password angelnegro “¡Hola bicho!”

Es muy fácil de usar, dentro de poco sacaré un programita que me permita hacer lo que estoy buscando 🙂

One thought on “Echando código: ¿Como mandar mensajes a mi cuenta de Yahoo Messenger desde Java?

Comments are closed.