Отображение статуса jabber-контакта на web-страничке

()

Очень часто на различных форумах и других ресурсах рядом с номером ICQ добавляют картинку с отображением статуса контакта. Решение этой задачи для ICQ является одной из дополнительных официальных функций ICQ, и даже описано на официальном сайте мессенджера.

Для jabber эта задача решается не так просто, но тоже решается. Для этого энтузиастами jabber создан ресурс http://presence.jabberfr.org. Далее будет показано как можно его использовать для отображения статуса jabber-контакта на web-страничке.

Первым делом оговоримся что для отображения своего статуса через web контакт должен добавить себе в ростер транспорт с jid "presence.jabberfr.org". Чтобы скрыть свой статус - соответственно удалить этот транспорт.

Использование этого сервиса в движках сайтах неплохо описано на соответствующей странице официального сайте проекта. Ниже будет показан только один из вариантов использования этого сервиса, задействованный на этом ресурсе.

Итак начальные данные: страница профиля пользователя на сайте, написанном на php. Все поля профиля находятся в ассоциативном массиве $row. Поле, содержащее JID участника, называется "jabber" и может быть пустым. Для отображения JID в коде присутствует строка:

print $row["jabber"];

Задача: рядом с JID отображать иконку, показывающую статус контакта.

Приступаем к решению. Детали использования сервиса описывать не будем, они итак неплохо описаны в официальной документации, приведём сразу готовое решение:

// Комментируем отображение JID
//print $row["jabber"];

// Если JID указан
if ($row["jabber" != ""])
 {
  // Отображаем иконку статуса
  print "<IMG src=\"http://presence.jabberfr.org/".md5($row["jabber"])."/image-default.png\" width=16 height=16> ";

  // Отображаем JID
  print $row["jabber"];
 }

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

Приятной работы!

P.S. Поскольку этот ресурс отныне поддерживает отображение статуса через web - всем желающим предлагается добавить в свои ростеры контакт "presence.jabberfr.org".

P.P.S. Само собой что добавление этого контакта - дело сугубо добровольное.

Ключевые слова: jabber, web, status, php.

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

v12aml 2009-02-22 19:27:59 (#)

для Google Talk есть http://www.google.com/talk/service/badge/New

Ruslan 2009-02-22 19:57:57 (#)

Самое правильное применение этого - генерация своих изображений статуса с id в картинке.
А то через год всем будет приходить барахло вида "Привет, сходи на этот сайд. Там сиськи паказуют."

MooSE 2009-02-22 20:51:15 (#)

v12aml, спасибо, не знал. Однако оно же показывает статус только для GTalk. Это не совсем универсальное.

Ruslan, уже четвёртый год пользуюсь jabber, свечу свой JID налево и направо и ни разу спама не получал. Рассылка спама в jabber затруднена хотя бы тем, что JID похож на e-mail и практически не реально отделить одно от другого.

Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE