XMPP транспорт Вконтакте или VK4XMPP
С начала сентября 2013 года вконтакте полностью отказались от использования xmpp в качестве системы обмена сообщениями. По этому поводу было высказано много мнений, как положительных, так и отрицательных. Однако факт остаётся фактом - обмениваться сообщениями через xmpp (как напрямую, так и через j2j транспорты) стало не возможно.
Но не всё так плохо. Нашелся добрый человек и написал новый транспорт для вконтакта. Его ник mrDoctorWho и сайт http://simpleapps.ru. Работа над транспортом была начата после известий о скором закрытии поддержки xmpp со стороны вконтакта, в августе 2013 года. А уже в начале сентября стала доступна первая пробная версия транспорта. Оригинальный исходный код доступен на GitHub.com, а вот тут находится мой форк транспорта, который периодически объединяется с оригиналом.
У меня нет своего сервера! Что делать?
Первое и основное правило - не паниковать! Если у Вас нет своего сервера - Вы можете воспользоваться публичными транспортами:
• vk.jabberik.ru (транспорт непосредственно от автора)
• vk.virtualtalk.org
• vkontakte.jabberon.ru
• vk.jabber-moscow.ru
• vk.beerseller.org
• vk.jabberid.org
• vk4xmpp.kap.sh
• vk.xmppserv.ru
• vk.jabbik.ru
• vk.helldev.net
• vk.xxo.su
• vk.anakee.ru
• vk.matrixteam.org (English version)
Порядок регистрации весьма прост:
• В меню Вашего любимого xmpp клиента надо найти пункт "Обзор сервисов";
• Ввести один из адресов, указанных выше;
• Заполнить регистрационную форму и нажать "Регистрация".
На форме регистрации хотелось бы остановиться и описать её более подробно.
Авторизация возможна тремя способами:
• По номеру телефона и ссылке из браузера. Рекомендуется именно этот вариант. Для регистрации копируем ссылку из первого поля в адресную строку своего браузера, переходим по ней, разрешаем приложению доступ. После этого копируем полученную ссылку из адресной строки своего браузера в последнее поле формы регистрации. Заполняем поле с номером телефона и нажимаем кнопку регистрации.
• По номеру телефона и паролю. Пароль не сохраняется и используется только один раз - при регистрации. Для регистрации заполняем поля "Номер телефона" и "Пароль", ставим галочку "Получить access-токен автоматически" и нажимаем кнопку регистрации.
• По номеру телефона и access-токену. Указываем номер телефона, в поле "Пароль" пишем access-токен и нажимаем кнопку регистрации.
У меня есть свой сервер и я хочу поднять свой транспорт!
Ничего сложного! Настраиваем:
Скачиваем последнюю версию транспорта:git clone https://github.com/mrDoctorWho/vk4xmpp.git
либо последнюю версию моего форка:git clone https://github.com/disabler/vk4xmpp.git
Открываем папку с транспортом и копируем файл конфигурации:cd vk4xmpp
cp Config_example.txt Config.txt
Редактируем Config.txt Вашим любимым текстовым редактором:Host = "vk.your_server.tld"
# Хост, на котором у Вас будет транспортServer = "localhost"
# Адрес, к которому будет подключаться транспортPort = 5556
# Порт подключения. Для Prosody рекомендуется указать порт 5347TransportID = "vk.your_server.tld"
# ID транспорта. Т.е. фактические это его JIDPassword = "******"
# Пароль для подключения к серверуWhiteList = []
# Список серверов, которым разрешена регистрация на Вашем транспорте. Если не заполнять - регистрация будет доступна без ограничений. Если надо ограничить регистрацию, то можно прописать разрешенные сервера вот так ['yourserver1.tld', 'yourserver2.tld', 'yourserver3.tld']WatcherList = []
# Список JID'ов, которым будут присылаться уведомления о регистрации и её удалении. Формат записи вот такой: ['admin@yourserver1.tld','name@yourserver2.tld']
Остальные настройки не рекомендуется менять. Переходим к настройки xmpp-сервера.
Настройка сервера Prosody:
В файле конфигурации в секции VirtualHost "your_server.tld"
прописываем адрес транспорта и его парольComponent "vk.your_server.tld"
component_secret = "*****"
Перезапускаем сервер или через telnet-shell перезагружаем файл конфигурации.
Настройка сервера Ejabberd:
В файле конфигурации в секции listen
добавляем:{5556, ejabberd_service, [
{ip, {127, 0, 0, 1}},
{access, local},
{shaper_rule, fast},
{hosts, ["vk.your_server.tld"], [{password, "*****"}]}
]},
где прописываем адрес транспорта и его пароль.
Перезапускаем сервер или через панель управления ejabberd перезагружаем файл конфигурации.
Запускаем транспорт:
Делаем первый тестовый запуск транспорта:python2.7 ./gateway.py
Если в консоли нет ошибок и появился примерно такой текст:#-# Config loaded successfully.
#-# Connecting: ok.
#-# Auth: ok.
#-# Initializing users..
#-# Connected 2/2 users.
#-# Finished.
значит всё в порядке и транспорт можно переводить в штатный режим работы. Нажимаем ^C и запускаем транспорт по новой:python2.7 ./gateway.py > /dev/null 2>&1 &
Если транспорт не запустился - внимательно читаем что он написал при этом и исправляем.
На этом, пожалуй всё. Более подробную информацию Вы можете узнать в конференции поддержки транспорта: xmpp:simpleapps@conference.jabber.ru?join
P.S: Добрые люди написали онлайн-утилитку для мониторинга транспортов VK.