2009-05-26 8 views
10

Comment envoyer un message XMPP en utilisant l'une des bibliothèques Python suivantes: wokkel, xmpppy ou jabber.py?Envoyer un message xmpp à l'aide d'une bibliothèque python

Je pense que je suis au courant du pseudo-code, mais jusqu'à présent, je n'ai pas réussi à le faire fonctionner correctement. C'est ce que j'ai essayé jusqu'à présent:

  • Appelez une API et transmettez le nom du serveur et le numéro de port pour vous connecter à ce serveur.
  • Appelez une API et transmettez le nom d'utilisateur, mot de passe pour construire un objet JID.
  • Authentifiez-vous avec ce JID.
  • Construire un objet Message et appeler une API et passer ce message obj dans l'argument.
  • Appelez une API d'envoi.

Il semble assez facile dans le concept, mais le diable est quelque part dans les détails. S'il vous plaît montrer un exemple de fragment si c'est possible.

Répondre

38

C'est le client xmpp le plus simple possible. Il enverra un message 'bonjour :)'. J'utilise xmpppy dans l'exemple. Et se connecter au serveur gtalk. Je pense que l'exemple est explicite:

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

vous voulez dire xmpppy, non? –

+1

Il est clair que quelque chose ne va pas dans ces paquets ... J'avais déjà installé xmpp mais il n'y avait pas de Client à l'intérieur. J'ai installé xmpppy et j'ai toujours la même erreur. Clairement une mauvaise idée de libérer des paquets avec le même nom. – sorin

2

xmpppy a un certain nombre d'exemples figurant sur la page principale (sous la rubrique « exemples »), dont le plus fondamental de sends a single test message. Ils rendent les exemples progressivement plus intéressants - ils introduisent l'API orientée callback via un chat bot program.

Questions connexes