Отвалился статус ICQ на сайте

30.09.2012
6518 просмотров

Проводя работы по модернизации своего сайта (кстати, в числе прочего, был сделан полный редизайн первой страницы) внезапно выяснил, что перестал отображаться статус ICQ клиента на сайте. Сперва грешил на какие-то косяки, вкравшиеся в код, но вскоре выяснилось, что на сервере icq.com провелись тайные работы и теперь все былые варианты отображения статуса аськи на web странице не работают.

Все ранее рекомендованные варианты, на базе:

http://web.icq.com/whitepages/online?icq=xxxxxx
http://status.icq.com/online.gif?icq=xxxxxxx
http://wwp.icq.com/scripts/online.dll?icq=xxxxxxx

и т.п., в одночасье стали неактуальными.

Возможно я чего то недонашел или недовыяснил, но пока что было найдено единственное решение, - парсить профиль с сайта icq.com Минус этой реализации - медленно работает потому что сама страница в профиле медленно прогружается, и если злоупотреблять, то по IP могут забанить. Можно конечно сделать парсинг пореже, а пользователю отдавать закешированные данные. И еще подводный камень - если на сайте icq поменяют код, то соответственно и парсер отвалится.

Сам парсер для сниипета MODX (код без кэширования):

<?
 if($icq){
  $e=file_get_contents('http://www.icq.com/people/'.$icq.'/');
  $re='/\<div[\s]*class\=\"d1\-1\-2\-1\-1\">[\s]*\<img[\s]*src\=\"([^\"]*)\"[\s]*alt\=\"[^\"]*\"[\s]*title\=\"[^\"]*\"\>[\s]*\<\/div\>/i';
  $s=preg_match($re,$e,$m);
  return $m[1];
 }else echo 'oops';
?>

Запускать сниипет некешированным с параметром icq, то есть (если название сниппета к примеру icq_status):

[!icq_status? &icq=`ваш_номер_аськи` !]

Несмотря на найденный путь, я, поразмыслив, в качестве временной меры тупо прикрутил статичную картинку "в онлайне" на статус. Пока не будет найдено более приемлемого выхода. Если кто то может подсказать или пнуть в нужном направлении - пишите в комментарии. Потому что на самом сайте icq, в профиле, статус успешно отображается, но выяснить, как это реализовано там, не удалось.

UPD: Все заработало вновь. Используемый код для картинки статуса: img src="http://web.icq.com/whitepages/online?icq=ICQ_ID&img=5" alt="Статус"

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