2009-05-26 4 views
10

Come posso inviare un messaggio XMPP utilizzando una delle seguenti librerie Python: wokkel, xmpppy o jabber.py?Invia un messaggio xmpp utilizzando una libreria python

Penso di essere a conoscenza dello pseudo-codice, ma finora non sono riuscito a farlo funzionare correttamente. Questo è quello che ho provato fino ad ora:

  • Chiamare alcune API e passare il nomeserver e il numero di porta per connettersi al server.
  • Chiama alcune API e passa il nome utente e la password per costruire un oggetto JID.
  • Autentica con quel JID.
  • Costruisci un oggetto Message e chiama alcune API e passa il messaggio obj nell'argomento.
  • Chiama alcune API di invio.

Sembra abbastanza facile nel concetto, ma il diavolo è da qualche parte nei dettagli. Si prega di mostrare uno snippet di esempio, se possibile.

risposta

38

Questo è il client xmpp più semplice possibile. Invia un messaggio 'ciao :)'. Sto usando xmpppy nell'esempio. E connettendosi al server gtalk. Credo che l'esempio è auto-esplicativo:

import xmpp 

username = 'username' 
passwd = 'password' 
to='[email protected]' 
msg='hello :)' 


client = xmpp.Client('gmail.com') 
client.connect(server=('talk.google.com',5223)) 
client.auth(username, passwd, 'botty') 
client.sendInitPresence() 
message = xmpp.Message(to, msg) 
message.setAttr('type', 'chat') 
client.send(message) 
+0

intendi xmpppy, giusto? –

+1

Chiaramente c'è qualcosa di sbagliato in questi pacchetti ... Ho già installato xmpp ma non ha Client all'interno. Ho installato xmpppy e ho ancora lo stesso errore. Chiaramente una cattiva idea rilasciare pacchetti con lo stesso nome. – sorin

2

xmpppy ha un certo numero di esempi elencati sulla sua pagina principale (sotto "esempi"), il più fondamentale dei quali sends a single test message. Rendono gli esempi progressivamente più interessanti - introducono l'API callback-oriented tramite uno chat bot program.