Send an xmpp message using a python library

How can I send an XMPP message using one of the following Python libraries: wokkel, xmpppy, or jabber.py ?

I think I am aware of the pseudo-code, but so far have not been able to get one running correctly. This is what I have tried so far:

  • Call some API and pass the servername and port number to connect to that server.
  • Call some API and pass the username, password to construct a JID object.
  • Authenticate with that JID.
  • Construct a Message object and call some API and pass that message obj in the argument.
  • Call some send API.

It seems easy enough in concept, but the devil is somewhere in the details. Please show a sample snippet if that's possible.

Answers


This is the simplest possible xmpp client. It will send a 'hello :)' message. I'm using xmpppy in the example. And connecting to gtalk server. I think the example is self-explanatory:

import xmpp

username = 'username'
passwd = 'password'
to='name@example.com'
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)

xmpppy has a number of examples listed on its main page (under "examples"), the most basic of which sends a single test message. They make the examples progressively more interesting -- they introduce the callback-oriented API via a chat bot program.


Need Your Help

How do I split a string with any whitespace chars as delimiters?

java string whitespace split

What regex pattern would need I to pass to the java.lang.String.split() method to split a String into an Array of substrings using all whitespace characters (' ', '\t', '\n', etc.) as delimiters?

When are API methods marked "deprecated" actually going to go away?

java date

I'm code reviewing a change one of my co-workers just did, and he added a bunch of calls to Date.toMonth(), Date.toYear() and other deprecated Date methods. All these methods were deprecated in JD...