
Прочитав недавнюю тему «IM на ВКонтакте», решил внимательно проштудировать эту тему и найти решение для удобного общения вконтакте не заходя на сайт.
Имея
pidgin и жаббер акк на xmpp.ru я захотел получить всех друзей из вконтакта в ростер.
То что вышло из этого смотрим под катом
Итак для начала я стал искать решение наиболее коротким путем — поиском плагина для
pidgin, чтобы использовать
vkontakte как обычный протокол общения. К сожалению подобного плагина я найти не смог (
Даже ничего похожего на разработку. оно и видно, пидгин почему то не очень жалуется пользователями рунета. Обидно блин.
Тогда я пошел с другой стороны — вспомнил что протокол jabber силен не только независимостью от компании AOL но и такой замечательной вещью как транспорты. Поиски в инете мало к чему привели и тогда я стал искать в группах самого вконтакта и нашел очень даже неплохой проект под неблагозвучным названием
pyvk-t.
На свой jabber сервер я не стал устанавливать это ПО, тк у меня используется
OpenFire, к которому очень проблематично прикручивать какие либо транспорты если они изначально не прикручены разработчиком, поэтому я пошел по пути наименьшего сопротивления — использовать готовые серваки с транспортами.
На страничке
pyvk-t есть небольшой список серваков, держащих этот транспорт:
eqx.su
hartois.info
games.onego.ru
zoo.dontexist.net
первый из них является оф сервером разработчиков, на котором постоянно тестируются новые версии, из за которых периодически ничего не работает :) Поэтому методом проб и ошибок я пришел к серверу
zoo.dontexist.net, как наиболее стабильному из всех.
Еще я обнаружил досадный косяк pidgin'a — отсутствие обзора сервисов джаббер сервера, видимо многопротокольность дает о себе знать :(. если кто знает — как реализовать в пидгине обзор сервисов — коменьте плз.
Поэтому для добавления транспорта я использовал другой
jabber клиент
(psi+)
Жмем
General — Service Discovery
вводим имя сервера (
zoo.dontexist.net)
ищем в списке
vkontakte.ru transport, правой кнопкой —
register. вводим свой емайл и пароль для доступа вконтакт, жмем
REGISTER
(для других клиентов схема аналогичная)
После всех манипуляций в нашем ростере появится транспорт вконтакта, откроем окно общения с ним и наберем
/login
после чего транспорт «входит» вконтакт
набираем
/get roster UPD
после чего в группу General добавятся все ваши друзья из вконтакта, надо будет дать всем авторизацию или заранее настроить чтобы клиент давал авторизацию всем.
в общем все готово. выходим из psi заходим в pidgin, все контакты видны, все прекрасно работает.
у транспорта есть еще некоторые настройки (типа оповещений о добавлениях в группы итд) чтобы их просмотреть наберите
/config
для изменения оных наберите
/config имя_переменной,1
1 — true, 0 — false
это моя первая статья, пожалуйста сильно не пинайте ногами.
комментарии (108)
Анализ сырцкода показал, что работает транспорт не через какое-либо API, а парсингом сайта (мобильной версии для уменьшения трафика). Всвязи с этим остро встает вопрос о безопасности. Доверять или не доверять — вот в чем вопрос.
а пароль да… надо бы сменить)
Ну а по поводу API — вконтакт не предоставляет нужных API, так что приходится парсить. :-)
(нет, я не разработчик, просто немного ковырялся в теме)
тут, наверное, надо
к которому очень проблематично прикручивать какие либо транспорты если они изначально нЕ прикручены разработчиком
у меня от jabber.ru прикручен — я там не нашёл такого функционала (или плохо искал?)
Спасибо за идею.
И жизнь хороша :)
iceim.lavente.ru/
Но плаг вроде пореже падает
«там всё давно уже есть»
Я что то пропустил?
официальный плагин для пиджина существует.
если кто-то поможет в разработке, будет очень хорошо
Думаю проверка обновлений через него идет а сбор данных типа текста сообщения и т.п. идет парсингом страничек
Просто когда закончились оперативка и swap пришлось жать Reset
Т.е. можно ли отправленные/полученные сообщения через транспорт прочитать потом на vkontakte.ru/mail.php?
Хотите ввести 6000 капч? :-)
Очевидно, один из методов борьбы со спамерами.
OpenFire поддерживает XEP-0114, так что по логике вещей особых проблем быть не должно.
Идея несомненно хорошая, но, к сожалению, я практически уверен, что этому проекту не суждено вылезти из «подполья», а это сулит ограниченный функционал с одной стороны и борьбу с транспортом, в случае повышения его популярности, с другой. :(
P.S. К слову, я про это уже писал.
Насчет команд — они доступны через ad-hoc, (не уверен что пиджин умеет), это позволит не учить их наизусть и выполнять несколько удобнее.
Исправьте /get list на /get roster
Приложение Сообщения 2.0
vkontakte.ru/app590231 (или vkontakte.im).
Это Flash приложение, являющееся клиентом к Jabber-серверу. Позволяет автоматом поддерживать ростер из списка друзей. Можно также юзать свой standalone Jabber-client.
Тов. Pingwinator написал подробно свой экспириенс:
pingwinator.habrahabr.ru/blog/59400/
Но если человек хотя бы установит приложение, он будет получать оповещения на сообщения через левое меню ВКонтакте. Т.е. есть некая интеграция с ВКонтакте. Кроме того, в roster автоматически добавляются ВКонтактовские друзья. Это все к тому, что это не тупо вебморда.
И там, и там есть свои Pros и Cons.
Если уж вы апологет транспорта, перечислю его Cons (из топика, ссылку на который я дал):
К недостатком (очевидным) транспорта можно отнести:
— Вам придется предоставить свой пароль от vkontakte
— Транспорт будет не IM, а HTTP-poll раз в N секунд
Увидел кто опять вошел в астрал контакт и присылаешь ему предложение забрать трудовую книжку)
такие люди всеравно работать не будут даже если это им отключить.
А так можно будет статистику собрать.
Я рассматриваю это со стороны наибольшей эффективности работы, тоесть пользы для компании, а не подкупа админа :)
но я 3 раза удалял и писал /get roster и каждый раз количество безниковых контактов было разное. Потом человек 20 вручную переименовывал. видать не всё так гладко
zoo.dontexist.net
постарался написать по мотивам вашей статьи на языке «Ядерная физика для домохозяик». Авось на джабер таким макаром перетащу большинство) Только логично что всё это для QIP Infium отписал. Спасибо
Но отправляет быстро. Без задержек и проблем =)
Что я делаю не так? Хочется чтобы транспорт работал полноценно
задержка приёма нового сообщения составляет ~1 минуту