Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2011 17:59:11

unax
От:
Зарегистрирован: 2011-05-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

XMPP ответ на запрос авторизации

Здравствуйте, товарищи)
делаю доброго и полезного jabber-робота для благих нужд.
Тут столкнулся с небольшой проблемой - если с какого то любого аккаунта (пользуясь допустим клиентом pidgin) добавить себе этого бота в контакт лист, то пока не получишь ответ на запрос авторизации, бот будет не в сети..
Как отловить запрос авторизации не могу найти( или просто какое сервисное сообщение надо сформировать и отправить на сервер чтоб добавить любой аккаунт во friendlist
кто то уже реализовывал такое?



Отредактировано (Май 3, 2011 18:00:40)

Офлайн

#2 Май 4, 2011 06:34:27

unax
От:
Зарегистрирован: 2011-05-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

XMPP ответ на запрос авторизации

network так network..
Ну что, нет соображений?
Кто-нибудь же контактлист редактировал программно.. Поделитесь опытом.



Офлайн

#3 Май 4, 2011 09:26:23

hizel
От:
Зарегистрирован: 2008-08-04
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

XMPP ответ на запрос авторизации

там есть /presence с атрибутом type=subscribe



Офлайн

#4 Май 5, 2011 20:40:42

unax
От:
Зарегистрирован: 2011-05-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

XMPP ответ на запрос авторизации

hizel
там есть /presence с атрибутом type=subscribe
ага, спасибо. Разобрался, просто все.
алгоритм такой
мой бот действует так
кто то отправляет ему заветное слово hello, бот проверяет в базе - есть ли у него такой контакт и если нет такого отсылает ему presence
self.connection().send(xmpp.Presence(to=answer_msg.to, typ = ‘subscribe’)) # self.connection это слабая ссылка на где-то созданный и рабочий экземпляр xmpp.Client а не метод
self.connection().send(xmpp.Presence(to=answer_msg.to, typ = ‘subscribed’))

у человека высвечивается запрос авторизации и бот благополучно поселяется в контакт листе :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version