Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2012 23:59:17

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

Отправка IM сообщений

Не уверен, вопрос для новичков или для экспертов - не претендую на правильность его размещения.
Задача заключается в рассылке уведомлений на 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.
Заранее спасибо тем, кто дошел до этого места )

Офлайн

#2 Апрель 16, 2012 23:06:27

beelze
Зарегистрирован: 2012-04-11
Сообщения: 104
Репутация: +  3  -
Профиль   Отправить e-mail  

Отправка IM сообщений

масса ответов, что радует
в общем, чтение херов, как и ожидалось, в данном случае занятие сугубо бесполезное, помог только wireshark. Вся проблема, как оказалось, заключалась в сугубой «мелочи» - перед отсылкой сообщений необходимо дождаться Presence от «агента транспорта», (который появляется в ростере после регистрации), что, насколько я понимаю, и служит признаком успешного логина зарегистрованной учетки на целевом сервисе.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version