ICQ бот на PHP? Легко!
Привет. Вот всегда была интересна мне тема создания ICQ-ботов на PHP, и сегодня решил рассмотреть ее подробнее и поделиться с вами найденной информацией. Итак, задача: написать ICQ-бот на PHP. Что б реализовать запланированное, нам не нужно изучать протокол ICQ, а достаточно просто воспользоваться готовым РНР-классом для работы с протоколом аськи. Когда класс WebIcqLite.class.php скачан, можно приступать к первым попыткам его использовать.
Вот что дают разработчики в качестве примера использования класса:
<?php
include('WebIcqLite.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 проблема с кодировками
Если скрипт так и не заработал - почитайте форум на сайте разработчиков этого скрипта.
А те, кто все-таки заставил скрипт работать, могут наслаждаться работой Бота, хотя сейчас это просто скрипт, который отправляет на один и тот же номер аси сообщение. Предлагаю сделать его более интерактивным. Добавим нашему боту возможность реагировать на отправленные ему сообщения:
<?php
include('WebIcqLite.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 может стать гибким инструментом настройки и мониторинга сервера. Ладно, это уже дело каждого, как применять данный инструмент. Потому, удачи с экспериментами!

Да действительно полезная статейка спасибо.Буду пробовать!
Спасибо! Надеюсь, информация freeware?))
много букф спасибо было интересно)
Как практическое решение врятли подойдет, но чисто из интереса можно. Есть же куча виндовых ботов уже…
Чисто из интереса интересная вещь
Для реальности просто функций желательно бы побольше, но хотя бот на РНР это уже что-то.
За наводку спасибо, посмотрим.
Думаю этот скрипт будет использован многими не в благих целях..
это ж его на крон нужно вешать?
Можно на крон, иначе он будет работать только на протяжении max_execution_time, которое указано в php.ini. Хотя на постоянную работу скрипт можно запустить используя SSH.
set_time_limit(0) поможет
Можно попробовать и так (в зависимости о того, как был собран PHP):
system(’/path/to/php /path/to/script.php &’).
А вообще WebIcqLite довольно глючное поделие (извиняюсь за жаргон). Очень быстрым и простым решением оказалось поставить Jabber-сервер и настроить соответствующие транспорты (PyICQt, PyMSNt, PyYIMt, PyAIMt), и далее по протоколу XMPP можно было слать сообщения в любую сеть, для которой настроен шлюз. Просто, быстро и удобно
А по мне лучше BASICQ юзать, если надо тупо чтото ответить на какой-то строгий запрос. А если чтото помощьнее, то это не пойдет…
Привет!
Спасибо за инфу. Штука интересня с командами!!!
Напишите пжл подробней о времени работы робота. Как сделать его неограниченым?
А я вот своего бота создал! хачу представить на вид зрителей так сказать! номер 7508475
все предложения писать на 4609319
А я вот еще подумал, его ведь можно использовать как ботов на сайтах, где есть общение… Вот пишешь ты кому-то сообщение, а он отвечает.. А это бот :((
Статья хорошая, и возможности хорошие открываются в использовании. Как по мне - лучше в сервисе его использовать.
P.S. Спасибо за статью! Молодец.
На ICQ серверах произошли некоторые изменения. Пострадали многие ICQ-клиенты и эта версия бота тоже не работает. Кто-нибудь знает как заставить его работать?
AOL сейчас творит с протоколом странные вещи. Хотя говорят что протокол не трогают, а просто прикрывают доступ альтернативным клиентам со стран СНГ и прокси решает все вопросы. Хотя надо проверять.
Вот мой бот 702080 оцените,
кроме этих возможностей он предоставляет инфу о сервере на котором запущен (нагрузка, свободное пространство, состояние БД, используемая память, там еще куча…) и может выполнять шелл команды, но это для строго ограниченного набора админ-уинов и после того как авторизируешься )))
короче заморочка еще та… но зато онлайн форевер )))
Так может кто-нибудь подскажет как сделать работающего бота. А то, все варианты, доступные для скачивания и инете не работают.
У меня щас работает всё, кроме WebIcqPro
привет всем!я никак не могу понять!как же запустить бота??? ну есть у меня php с настройками.а как включить то бота?чтоб он был онлайн…чем надо запускать? ну то есть у меня файл бот.php (как например бот.exe) а что делать дальше?
Вообще класс icq интересная фишка. Я планирую заняться её сразу же после того как закончу переход на другую кмс на сайте))) В остальном ничего не скажу, планирую сделать его таким какой мне подойдет под сайт, так чтобы был плюс с поситителей)))
да люди блин, протоко обновился, всю инфо читайте WebIcqPro тут
Ну не знаю, у меня как-то работал, еще в 2008, щас вообще все заглохло
Кому интересно, еще тут про ботов много чего есть:
http://www.nakodim.ru/index.php?page=bots