如何使用xmpppy向jabber客户端发送消息?

时间:2012-06-26 07:54:11

标签: python xmpp xmpppy

我要发送基于xmpp的聊天客户端(hipchat),我正在使用xmpp.py来实现此目的。现在,我正在尝试从shell发送消息。以下是我从shell执行的语句:

>>> import xmpp
>>> jid = xmpp.protocol.JID('99999_9999@chat.hipchat.com')
>>> cl=xmpp.Client(jid.getDomain(),debug=[])
>>> cl.connect()
'tls'
>>> cl.auth(jid.getNode(),'password')
'sasl'
>>> cl.send(xmpp.protocol.Message('99999_9999@chat.hipchat.com','hey!'))
'3'

我使用相同的jabber id进行身份验证和接收器。我也在聊天室在线,但我没有得到任何消息。有什么遗漏?

2 个答案:

答案 0 :(得分:0)

某些较旧的XMPP服务器需要初始状态。 在cl.send

之前使用以下调用发送状态
cl.SendInitPresence(requestRoster=0)

另请参阅xmpppy主页中的xsend示例: http://xmpppy.sourceforge.net/examples/xsend.py

答案 1 :(得分:0)

我错过了typ参数。使用值chat添加它可以解决问题:

cl.send(xmpp.protocol.Message('99999_9999@chat.hipchat.com','hey!', typ='chat'))