...

четверг, 12 декабря 2013 г.

ВКонтакте без джаббера и снова с ним

Это история про то, как пользоваться чатом ВКонтакте в том мессенджере, который вам нравится.

Пусть этой новости уже несколько месяцев, однако не всегда хорошие новости вовремя получают должное внимание.

В середине статьи — мануал для админов джаббер-серверов, в конце — обращение к питонистам.

Ссылки на пруфпики инклюдед.

Как известно, в начале сентября ВКонтакте закончил поддерживать XMPP для доступа к личным сообщениям. Джаббер-сообщество негодовало [pic] и решило этот вопрос иначе.


Картинка про Jabber и ВКонтакте от Павла Дурова:





Одновременно с закрытием XMPP, чат ВКонтакте перестал быть доступен для многих мессенджеров.

Назовём этих «счастливчиков».
















Мобильные


iOS, Android: Talkonaut, Mail.ru Агент, Jasmine IM, IM+, Imo.im, Bombus, Jimm (Aspro, Multi), все старые J2ME клиенты (включая вышеупомянутые), все Symbian, Maemo & Meego клиенты (Баян ICQ, QIP PDA 2xxx, etc, кроме qutIM) и многие другие

Десктопные


Pidgin, Adium, Miranda NG, старые версии QIP (QIP Infium и QIP 2010), qutIM*

Веб-клиенты


IM+ Web, IMO, Jappix //других для произвольного XMPP-аккаунта, кажется-то и нету?

До появления Джаббера в ВКонтакте существовал транспорт pyvk-t. Его разработка активно велась до появления родного XMPP в ВКонтакте в 2010-ом году. К 2013 году он оказался заброшеным, а последние разработчики, которые его ковыряли разрабатывали, сообщили, что в последних версиях транспорт работал с ошибками и его состояние они не знают.

Вопрос использования сообщений ВК без необходимости открывать браузер встал с новой силой.


1. Нативные протоколы (ВК API)




В настоящий момент сообщения ВКонтакте поддерживают три известных мультипротокольных клиента, причём два из них Windows only.

Это QIP IM (QIP IM), Miranda NG и qutIM. Если вам повезло любить один из этих мессенджеров, то XMPP для ВКонтакте вам, скорее всего и не нужен.

Протокол в QIP был сделан задолго до отмены XMPP,

протокол для Миранды появился буквально месяц назад (сильно после закрытия XMPP), переписан с нуля.

протокол в qutIM был реализован довольно давно (чуть ли не раньше, чем в QIP?).

Из мобильных клиентов — поддержка сообщений ВК осталась только у QIP IM (для iOS и Android). Причём приложения под обе платформы поддерживают только сообщения (поддержка фото, аудио, пересылки и прочее не реализовано) и в обозримой перспективе не будут активно развиваться.


2. Транспорт VK4MPP




Как я уже упоминал, транспорт pyvk-t был заброшен, неактуален, и не реализовывал дополнительный функционал сообщений ВКонтакте — разработчики транспорта, да и сообщество в целом, ожидали этого в родной реализации от ВКонтакте. Не случилось.

Поэтому, когда в 2013-ом году ВКонтакте закрыл XMPP, оказалось проще написать новый транспорт, с нуля.

Так появился VK4XMPP.

Дружба питона и XMPP продолжается. Но не только питона.


Чуть позже появился второй транспорт — VKXMPPGATE. Github Описание.

Он написан на Дельфи/Паскале и, вероятно, работает побыстрее. Однако последний коммит сделан 3 месяца назад. Поэтому, в данной статье речь пойдёт о VK4XMPP, как о единственном активном проекте.


По словам автора, VK4XMPP представляет собой транспорт из ВК в XMPP и обратно. В отличие от ранее существующего pyvk-t, он не парсит страницы, а полностью работает с API ВКонтакте, что значительно повышает его надёжность и стабильность. Транспорт не хранит паролей, а использует для авторизации access-token.


На текущий момент транспорт может похвастаться следующими фичами:



  • Прием и отправка сообщений;

  • Не хранит пароль. Авторизация по ключу «access-token», выдаваемому ВКонтакте;

  • Автоматическое получение ключа при вводе пароля (для неопытных пользователей, пароль не сохраняется)

  • Вложения в сообщениях (только приём);

  • Пересланные сообщения и вложения в них (картинки, музыка, документы, метки на карте);

  • Список друзей в ростере;

  • Поддержка vCard для контактов;

  • Поддержка конференций (групповых чатов; тестовая, не рекомендуется к использованию);

  • Автодобавление друзей, которых вы добавили через сайт (только если вы были онлайн);

  • Статистистика работы транспорта.




Неплохо, правда? Помнится, XMPP-сервер от ВКонтакте не мог похвастаться такими фичами.

Регистрация




В общих чертах, процесс регистрации на транспортах всегда одинаков. Инструкции для подключения популярных клиентов:

Psi+ | Tkabber | Gajim | Miranda | QIP | jTalk | Jimm | JasmineIM | Pidgin

Лучи добра администрации jabberon.ru и прочим энтузиастам.

После успешной регистрации в вашем джаббер-аккаунте появятся контакты всех друзей с их именами и статусами из ВКонтакте.

В случае проблем, автор рекомендует отменить регистрацию и пройти её через Psi+.


Чтобы зарегистрироваться, потребуется выбрать один из существующих серверов. Список доступных серверов можно найти в wiki проекта на гитхабе.


Установка транспорта




Если у вас есть джаббер-сервер, вы можете поднять транспорт у себя. Тогда даже токен ВКонтакте будет под вашем контролем. Потребуется джаббер-сервер и Python 2.7. Остальные библиотеки содержатся в репозитории.

Для установки и обновлений рекомендуется использовать git



git clone github.com/mrDoctorWho/vk4xmpp.git




Дальше потребуется скопировать дефолтный конфиг и изменить несколько значений.

Переходим в папку с транспортом и копируем файл конфигурации:

cd vk4xmpp
cp Config_example.txt Config.txt


Конфиг неплохо прокомментирован, а также есть несколько инструкций по установке:

Ubuntu/Debian/etc + Ejabberd

Arch + Prosody

Prosody


На закуску — если ваши нагрузки будут довольно велики, пригодится инструкция по оптимизации скорости работы и потребления RAM.


Обратиться к разработчику за поддержкой и по другим вопросам можно в конференции simpleapps@conference.jabber.ru


Чем помочь




Если вы дочитали до этого места, то ваша помощь была бы кстати.

1. Самое простое: подпишитесь на баг API ВКонтакте, помогите разработчику добиться ответа администрации ВК. С этим багом столкнулись и разработчик VK4XMPP, и разработчик VKXMPPGATE.


2. Поболтайте в конференции. Пожелайте фич и удачи!


3. Посмотрите на открытые реквесты и в частности — про user-friendly поведение. Опишите поведение, которое бы вам понравилось.


4. Python-программеры! Чего греха таить, будет здорово, если кто-то из присоединится к проекту. Девелоперс-девелоперс-девелоперс!©

Впрочем, помощь с дизайном (как минимум, иконки) тоже будет очень полезной;)


5. Я слышал, что у автора были финансовые проблемы с продолжением работы над проектом — банальная смерть единственного нетбука. И, хотя проблемы уже решены, возможно, он не откажется от каких-то пожертвований.


Ссылки




«ВКонтакте» отключит поддержку XMPP 31 августа — беседа на Роеме с комментариями ВКонтакте, моими вопросами к ним, а также комментариями разработчика QIP SegaZero и MRA Java Bachin.

Мирандоюзеры: Кто виноват и что делать forum.miranda.im/showthread.php?p=54597

Будущее IM-мессенджеров forum.miranda.im/showthread.php?p=54559


Пруфы как умерли Trillian Miranda qutIM, IM+ Web (мобильный с опозданием, но переключили на API), Imo.im


Знаете правило 34?



Про всё есть XMPP. Исключений нет.


Репозиторий VK4XMPP на гитхабе: github.com/mrDoctorWho/vk4xmpp


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий