Найти - Пользователи
Полная версия: Отправка IM сообщений
Начало » Python для новичков » Отправка IM сообщений
1
beelze
Не уверен, вопрос для новичков или для экспертов - не претендую на правильность его размещения.
Задача заключается в рассылке уведомлений на XMPP, ICQ и MRA контакты. Первое затруднений не вызвало, второе (через шлюзы) тоже, а вот с агентом, как обычно, возникла проблема.
Я предполагал, что для агента «технология» абсолютна такая же как и для ICQ:

>>> import xmpp
jid=xmpp.protocol.JID(myjid)
cl=xmpp.Client(jid.getDomain(),debug=[])
cl.connect()
cl.auth(jid.getNode(),mypwd,resource=jid.getResource())
xmpp.features.register(cl, 'mrim.sudouser.ru', {'email':'myacc@mail.ru', 'password':'mypasswd'})
cl.sendInitPresence()
cl.send(xmpp.protocol.Message('addressee%mail.ru@mrim.sudouser.ru','some text'))
сообщение не доставляется, хотя в клиенте агента видит, что myacc@mail.ru «зеленеет» при sendInitPresence(). mrim.sudouser.ru - вполне рабочий шлюз, проверено в IM-клиенте. Самое интересное, что если в IM-клиенте у меня есть транспорт на учетке myjid с зарегистрированным myacc@mail.ru и я делаю Login этому транспорту, то после этого вышеприведенный код все же отсылает сообщение. Видимо в коде нужно сделать что-то еще, и, признаюсь в лени, хотелось бы обойтись без rocket science и погружений в XEP.
Заранее спасибо тем, кто дошел до этого места )
beelze
масса ответов, что радует
в общем, чтение херов, как и ожидалось, в данном случае занятие сугубо бесполезное, помог только wireshark. Вся проблема, как оказалось, заключалась в сугубой «мелочи» - перед отсылкой сообщений необходимо дождаться Presence от «агента транспорта», (который появляется в ростере после регистрации), что, насколько я понимаю, и служит признаком успешного логина зарегистрованной учетки на целевом сервисе.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB