Как отправить сообщение с помощью xmpppy клиенту jabber?

Мне нужно отправить чат-клиент на основе xmpp (hipchat), и для этой цели я использую xmpp.py. На данный момент я пытаюсь отправить сообщение из оболочки. Ниже приведены операторы, которые я выполняю из оболочки:

>>> import xmpp
>>> jid = xmpp.protocol.JID('[email protected]')
>>> cl=xmpp.Client(jid.getDomain(),debug=[])
>>> cl.connect()
'tls'
>>> cl.auth(jid.getNode(),'password')
'sasl'
>>> cl.send(xmpp.protocol.Message('[email protected]','hey!'))
'3'

Я использую один и тот же идентификатор jabber для аутентификации и в качестве получателя. Я также онлайн в чате, но я не получаю никаких сообщений. Чего не хватает?


person wasimbhalli    schedule 26.06.2012    source источник


Ответы (2)


Некоторым старым серверам XMPP требуется начальное состояние присутствия. Состояние отправляется с помощью следующего вызова перед cl.send:

cl.SendInitPresence(requestRoster=0)

См. также пример xsend с домашней страницы xmpppy: http://xmpppy.sourceforge.net/examples/xsend.py

person Ilmo Euro    schedule 26.06.2012

Мне не хватало параметра typ. Добавление его со значением chat решило проблему:

cl.send(xmpp.protocol.Message('[email protected]','hey!', typ='chat'))
person wasimbhalli    schedule 28.06.2012