Enviando Mensagem Jabber via Ruby ou Python

Esses dias eu queria enviar de alguma maneira por jabber, uma vez que estou 90% com um cliente jabber rodando no meu micro, mensagens me informando de eventos de alguma coisa que me interesse que ocorra em algum servidor ou mesmo no meu micro. Depois de tentar algumas libs em python e java, acabei conseguindo fazer um pequeno script em ruby (e python), simplesmente muito fácil, que atendeu totalmente o que eu queria.

Sem muito bla bla bla, pois o que interessa é mostrar funcionando, listo abaixo como instalar a gem (eu uso ruby 1.9) e um exemplo de como enviar a mensagem.
Instalando:

gem install xmpp4r

Eis os script que envia a mensagem:

require 'xmpp4r'
include Jabber

CLIENT_ID = 'cliente@jabber.org'
PASSWORD = ''

SEND_TO = 'destinatario@gmail.com'
JABBER_SERVER='jabber.org'   #para enviar a partir de um servidor jabber 
GTALK_SERVER='talk.google.com' #para enviar usando o google

Client.new(JID.new CLIENT_ID).instance_eval do
  connect JABBER_SERVER
  auth PASSWORD
  send Message.new(SEND_TO, 'enviando uma mensagem via ruby').tap{|m| m.type = :chat}
  close
end

Mas mesmo assim, pra quem gosta de programar em Python, baixe o xmmpy, descompacte e entre no diretório, para em seguida:

python setup.py install

Pronto, a biblioteca já está instalada. Abaixo um exemplo de como enviar a mensagem por Jabber:

import sys
import xmpp

# Google Talk constants
FROM_GMAIL_ID = "remente@gmail.com"
GMAIL_PASS = "senha_do_remente"
GTALK_SERVER = "talk.google.com"
TO_GMAIL_ID = "destinatario@gmail.com"

jid=xmpp.protocol.JID(FROM_GMAIL_ID)
cl=xmpp.Client(jid.getDomain(),debug=[])

if not cl.connect((GTALK_SERVER,5222)):
   raise IOError('Can not connect to server.')
if not cl.auth(jid.getNode(),GMAIL_PASS):
   raise IOError('Can not auth with server.')

cl.send( xmpp.Message(TO_GMAIL_ID ,"Fala meu bruxo!" ) )
cl.disconnect()

É isso galera, bem simples enviar mensagens para o seu cliente Jabber usando essas duas dicas. Detalhe: vc não precisa ter duas contas no Gtalk, basta enviar de vc para vc mesmo. Nerds carentes devem evitar esses scripts ehhehe.

Advertisements