ICQ бот на PHP? Легко! Привет. Вот всегда была интересна мне тема создания ICQ-ботов на PHP, и сегодня решил рассмотреть ее подробнее и поделиться с вами найденной информацией. Итак, задача: написать ICQ-бот на PHP. Что б реализовать запланированное, нам не нужно изучать протокол ICQ, а достаточно просто воспользоваться готовым РНР-классом для работы с протоколом аськи. Когда класс WebIcqLite.class.php скачан, можно приступать к первым попыткам его использовать. Вот что дают разработчики в качестве примера использования класса: include('WebIcqPro.class.php'); define('UIN', 111111111); define('PASSWORD', 'password'); $icq = new WebIcqLite(); if($icq->connect(UIN, PASSWORD)) { if(!$icq->send_message('123456789', 'Hello from php!!!')) { echo $icq->error; } else { echo 'Message sent'; } $icq->disconnect(); } else { echo $icq->error; } ?> Код довольно простой. Сначала мы определяем UIN, под которым будет работать наш Бот, а потом отправляем методом send_message сообщение на указанный номер. Какие я заметил проблемы: 1. Версия PHP должна быть не ниже 5.2.0 2. Socket Support должен быть включен (из-за этого не смог запустить скрипт на локалхосте) 3. Если версия РНР больше 5.2.0 и Сокеты поддерживаются, а скрипт не работает, попробуйте изменить в WebIcqLite.class.php на 391 строке порт на 80, у меня заработало именно с 80 портом. 4. В ICQ6 проблема с кодировками Если скрипт так и не заработал - почитайте форум на сайте разработчиков этого скрипта. А те, кто все-таки заставил скрипт работать, могут наслаждаться работой Бота, хотя сейчас это просто скрипт, который отправляет на один и тот же номер аси сообщение. Предлагаю сделать его более интерактивным. Добавим нашему боту возможность реагировать на отправленные ему сообщения: include('WebIcqPro.class.php'); define('UIN', 1111111); define('PASSWORD', '222222'); $icq = new WebIcqLite(); if(!$icq->connect(UIN, PASSWORD)) { echo $icq->error; exit(); } while($icq->is_connected()) { $msg = $icq->read_message(); if($msg) { if($msg['message'] == "#code") { $icq->send_message($msg['from'], "It's command!"); } else { $icq->send_message($msg['from'], strrev($msg['message'])); } } flush(); sleep(1); } ?> Вот и все, пока наш бот в сети, мы ловим сообщения методом read_message, а дальше для примера я показал 2 варианта: если нам прислали “#code”, то отправляем “It’s command!” (пример просто комманды, которую можно реализовать), а если это простой текст - то применяем к нему функцию strrev (просто для шутки) и возвращаем отправителю. Пример с командой я показал не просто так, потому что для бота можно реализовать очень много полезных функций. Где-то встречал бота, который управлял БД MySQL посредством определенных сообщений. Кроме того, на многих мобильных телефонах можно сейчас установить ICQ и получать готовую обработанную Ботом информацию, а не лазить по страницам и искать ее. Кстати интересный факт заметил. На форуме разработчиков скрипта, большинство пользователей применяют его для создания Ботов, которые будут скидывать анекдоты, пытаться общаться с пользователями, у меня сразу возникли почему-то другие взгляды на применение данного Бота. Например ICQ бот на PHP может стать гибким инструментом настройки и мониторинга сервера. Ладно, это уже дело каждого, как применять данный инструмент. Потому, удачи с экспериментами!