Транспорты

Транспорты (они же шлюзы) — один из способов использования Jabber-клиентов для общения с пользователями других сетей. Заключается в том, что на Jabber-сервере устанавливается специальный модуль, преобразующий сообщения из формата Jabber в формат других сетей. Преобразование происходит совершенно незаметно для пользователя. Чаще всего транспорты служат для подключения к другим сетям обмена сообщениями, например, ICQ, IRC, MRIM, AIM, Yahoo!, MSN и другим. Но связь с другими сетями обмена сообщениями — не единственное применение транспортов, их также используют для доступа к различным ботам, предоставляющим самые разнообразные функции, например, погодным ботам или ботам-переводчикам. Существуют также транспорты для получения обновлений из RSS-лент, транспорты для отправки SMS-сообщений, транспорты для чтения-отправки сообщений электронной почты, и даже другие виды транспортов.

Преимущества транспортов

Транспорты настраиваются один раз и не зависят от клиента, с которого их используют. Подключив шлюзы с Jabber-клиента на домашнем компьютере, не требуется подключать их на мобильном телефоне и ноутбуке. Транспорт работает на стороне сервера и автоматически подключается к соответствующей сети, когда зарегистрировавшийся на транспорте пользователь появляется в сети, и он просто видит в своём ростере контакты из этой сети вместе со всеми остальными своими контактами.

При прямом использовании нескольких сетей (через многопротокольные клиенты) может значительно возрасти количество передаваемых данных. Транспорты же потребляют гораздо меньше трафика, особенно если подключенных сетей много.

Транспорты, дающие доступ к специальным ботам, позволяют создать из своего Jabber-клиента универсальный инструмент, объединяющий в себе, к примеру, RSS-читалку, файловое хранилище, почтовый клиент, словари и переводчики, а также средство для просмотра погоды и отправки СМС.

Недостатки использования транспортов

Транспорты — не панацея. Из-за закрытости многих IM и отсутствия полной документации по протоколу, пользователь может лишиться ряда возможностей по сравнению с использованием клиентов, напрямую работающих с данным протоколом. Например, желающим использовать ICQ или MRIM через Jabber придётся пожертвовать передачей файлов, а также, например, статусом «невидимый» и списками видимости. Следовательно, если требуются все возможности, лучше параллельно использовать ICQ-клиент, либо многопротокольный клиент с поддержкой как Jabber, так и ICQ.

При подключении транспортов теряются все группы. Помимо этого, если Вы вручную переименовывали контакты, то эта информация тоже пропадет. После подключение можно рассортировать новые контакты по группам, как и обычные Jabber-контакты.

Транспорты нашего сервера

Наш jabber-сервер на данный момент поддерживает транспорты Telegram и ВКонтакте. Как уже было сказано выше, транспорт достаточно настроить один раз в одной из программ-клиентов и он будет доступен в других клиентах, через которые вы будете подключаться со своей учетной записью к jabber-серверу. Многие мобильные клиенты не поддерживают настройку транспортов, однако прекрасно с ними работают, если их настроить в другой программе.

Настройка транспорта Telegram в клиенте Gajim

  1. Выбираем пункт меню Accounts->(Ваш jid)->Discover Services.
  2. В открывшемся окне выбираем Telegram Transport и жмем кнопку Зарегистрироваться.
  3. Далее появляется окно регистрации. Здесь нужно ввести номер телефона в международном формате. В поле «Пароль» вводим пароль, если в Телеграм у Вас настроена двухэтапная аутентификация, в противном случае вводим что угодно и нажимаем кнопку «Следующая».
  4. Появляется окно с сообщением, что регистрация выполнена.
  5. Далее на указанный номер телефона (или в приложение Телеграм, если оно у Вас запущено) Телеграм отправит сообщение с кодом. Также в программе Gajim от контакта «telegram» Вам придет сообщение вида «Authentication code:»
  6. Код, полученный от Телеграм необходимо отправить в ответ на это сообщение.
  7. Вслед за этим может появиться запрос на добавление контактов из аккаунта Телеграм в ваш список контактов.

На этом настройка транспорта Телеграм завершена.

Настройка транспорта ВКонтакте в клиенте Gajim

  1. Выбираем пункт меню Действия->Просмотреть сервисы.
  2. В открывшемся окне выбираем VK4XMPP Transport и жмем кнопку Зарегистрироваться.
  3. Далее появляется окно регистрации. В нем из поля «Страница авторизации» копируем ссылку в буфер обмена.
  4. Вставляем скопированную ссылку в окно браузера и авторизуемся ВКонтакте или если вы уже были авторизованы, то переходим к следующему этапу.
  5. После входа в ВК у вас в браузере откроется страница с сообщением: «Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту.»
  6. Нам нужно скопировать токен — набор букв и цифр после строки «access_token=» и до знака «&» (знаки «=» и «&» не копируем).
  7. Вставляем скопированную строку в поле «Пароль/Access-token» формы регистрации, вводим номер телефона и жмем кнопку ОК.
  8. Если все прошло нормально, то появляется сообщение о том что регистрация завершена.
  9. Вслед за этим появляется запрос на добавление контактов из аккаунта ВК в ваш список контактов jabber-аккаунта.
  10. Выбираем нужные контакты и жмем кнопку Добавить. Контакты добавятся в ваш список контактов jabber-клиента.

На этом настройка транспорта ВКонтакте завершена. После завершения вам может придти сообщение с просьбой ввести капчу: «Внимание! ВКонтакте отправил Вам капчу. Пожалуйста, перейдите по ссылке https://api.vk.com/captcha.php?sid=988202415140 и введите текст с картинки сюда. Пример: !captcha ключ. Внимание: не используйте браузер Firefox для открытия ссылки.«.
Вам нужно открыть указанную ссылку в любом браузере (кроме Firefox) и текст с открывшейся картинки ввести в чате в ответ на присланное сообщение в формате !captcha текст_с_картинки

Как вы могли заметить, в форме регистрации возможно использование вместо токена пароля от аккаунта ВК. Можно попробовать зарегистрироваться этим способом. Также возможна установки галочки на пункте «Получить access-token автоматически», но у меня почему-то она не сработала. В итоге выше был описан точно рабочий способ регистрации транспорта ВК.

Ниже немного ответов на вопросы по транспорту ВК (с сайта jabberon.ru).

Q: Насколько я могу доверять этому транспорту?
A: Транспорт не хранит паролей. Даже если при регистрации пользователь пожелал авторизоваться используя пароль. Транспорт хранит лишь access-token.

Q: Как правильно перерегистрироваться на транспорте?
A: Сначала удаляем транспорт. Для разных клиентов процедура может отличаться, но все сводиться к одному – удаляем контакт транспорта из своего списка контактов. Это нужно для того, чтобы VK4XMPP удалил информацию из базы и завершил сессию с Вконтактом.

Q: Я не получаю сообщений, но мои сообщения уходят. Почему так может быть?
A: Это может быть по следующим причинам:
1)  Открыт сайт Вконтакте в браузере и открыты диалоги с пользователем который отправляет сообщения.
2) Запущено приложение, использующее учетную запись Вконтакте и читающее сообщения.
Во всех этих случаях пришедшие сообщения отмечаются как прочитанные, и поэтому транспорт их не обрабатывает.

Q: Почему вместо смайликов приходят квадратики?
A: Вконтакте может перекодировать смайлы в формат юникода, а пользовательский клиент может использовать шрифт, который не поддерживает все символы кодировки.

Q: Во время прохождение капчи получаю ошибку «Капча введена неверно», хоть была введена верная капча.
A: Иногда Вконтакте не хочет принимать капчу. Если случилось такое, можно попробовать открыть ссылку с капчей еще раз, обновить несколько раз страничку с капчей, и после этого попробовать ввести еще раз.