Транспорт в VK для Jabber

При наличии VDS с дебианом на борту вполне логичным шагом выглядит и собственный jabber-сервер. А что? Никакие пароли налево не уходят, можно поднимать любые свои транспорты, ну и выбрать себе красивое имя 🙂
Прочитав недавно статью на Хабре о транспорте из Jabber в VK, решил поднять его у себя, дабы не сливать трафик посторонним лицам.

Итак, приступим?

Предположим, работающий jabber-сервер у нас есть. Вариантов много, я пользую ejabberd. Так же предположим, что у нас на сервере уже стоит git (а если не стоит, поставить его несложно).
Для начала я рекомендовал бы создать отдельного пользователя, от которого будут стартовать все наши транспорты:

useradd jabber -d /home/jabber -m -s /bin/false

Далее идем в свежесозданную /home/jabber и выкачиваем репозиторий с гитхаба:

git clone https://github.com/mrDoctorWho/vk4xmpp.git

Далее правим конфиг:

cd vk4xmpp && cp Config_example.txt Config.txt

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

# coding: utf

## Connection host.
## For Prosody "vk.example.com"
Host = "vk.nixman.info"

## Connection server (usually equals host)
## For Prosody "example.com"
## На этом адресе висит jabber-сервер
Server = "localhost"

## Connection port (as you set in your jabber-server config)
## Default value for Prosody is 5347
Port = 5556

## Transport ID (Controls all)
TransportID = "vk.nixman.info"

## Connection password.
Password = "secret"

Конфиг jabber-сервера будет примерно таким:

  {5556, ejabberd_service, [
                        {ip, {127, 0, 0, 1}},
                        {access, all},
                        {shaper_rule, fast},
                        {host, "vk.nixman.info", [{password, "secret"}]}
                       ]},

Особенно внимательно смотрите на секцию host: в jabber многое завязано на hostname, поэтому если укажете не тот, ничего работать не будет. У каждого сервиса hostname должен быть свой.

На это все. Рестартуем ejabberd, после чего настраиваем jabber-клиент (я использую Pidgin) для работы через транспорт. Например, для pidgin есть вот такая инструкция.

Для других клиентов можно посмотреть вот тут

Теперь в нашем клиенте видны и статусы и аватарки друзей из ВК, что и требовалось.
Приятного общения!

P.S. чтобы автоматизировать запуск транспорта (который суть есть просто скрипт на питоне, нужно в /etc/rc.local добавить следующую строчку (перед “exit 0”):

su -c 'python /home/jabber/vk4xmpp/gateway.py > /home/jabber/vk4xmpp/log 2>&1 &' - jabber

Leave a Reply