ICQ на php

Discussion in 'PHP' started by dk-ne, 31 Jul 2009.

  1. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Есть задумка написать icq бот, который мог бы не только отправлять сообщения, но и вести переписку, а ответы записывать в БД. Проблема в том, как сделать принятие сообщений, чтоб реально работали условия if-else, а ответ писался хотя бы для начала в какую-нибудь переменную. :confused:
     
  2. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Бери WebIcqLite.php движок, пиши управляющий скрипт, вот пример такого скрипта:

    PHP:
    <?php
        
    include('WebIcqLite.class.php');
        
    define('UIN'987654321);
        
    define('PASSWORD''password');
        
    $icq = new WebIcqLite();
        if(
    $icq->connect(UINPASSWORD)){
            if(!
    $icq->send_message('123456789''Привет, Античат!')){
                echo 
    $icq->error;
            }else{
                echo 
    'Message sent';
            }
            
    $icq->disconnect();
        }else{
            echo 
    $icq->error;
        }
    ?>
     
  3. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    А запись всех входящих сообщений в отдельные переменные как делать?
     
  4. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Автор, специально для тебя выкладываю бота. Итак. Запуск производится через файл 55.php. В нем же имееются комментарии как что работает, там есть условия "ответ на то, что прислал пользователь", там есть функция записи лога, там есть функция управления ботом с $ADMINUIN, добавления новых фраз в библиотеку бота (fraza.txt, оттуда берется рандомная фраза, если то, что ввел пользователь не совпадает с тем, на что имеются ответы в 55.php), смена статуса бота, посылка сообщения на $UIN через бота. Движком является Icq.php.

    Залил сюда, пароль на скачивание - ICQBOT.

    С тебя плюсик ;)

    Будет что не понятно - пиши в ICQ.
     
    2 people like this.
  5. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    ОК. Щас затестю
     
  6. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Условия добавлять примерно так:

    PHP:
    if (strpos($text,'хай') or strpos($text,'привет')) {$otvet.="привет!";}
     
  7. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Я вроде начинаю понимать. А как вот это исправить?
    Fatal error: Call to undefined function socket_create() in W:\home\localhost\www\WebIcqLite.class.php on line 393

    В той строке это: $this->socet = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
     
  8. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Sockets включил?
     
  9. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Я на компе через денвер пробую. Реально проверить?
     
  10. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    По-моему ты меня не понимаешь. У тебя не включены Sockets видимо.
     
  11. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Я в первый раз с сокетами и асей пробую. Не знаю как их включать
     
  12. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Не помню как на денвере... Зарегистрируй себе бесплатный хостинг с сокетами. Или платный...
     
  13. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Русских не нашел. А с иностранными все какие-то проблемы
     
  14. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    ТС, открой свой php.ini и найтди там строку :
    Убери вначале знак ";" и сохрани изменения. Перезапуск сервера, все, сокеты работают. Совет #2: подучи основы, ты слишком рано начинаеш работать с классами и тд, незная что такое Call to undefined function и что такое сокеты.
     
  15. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Есть предложение. Условие например такое:
    $а = "сколько вам лет";
    $b = "любимый цвет";
    $c = "1. да";
    $d = "2. нет";
    Дальше смысл такой: пишет чел в асю. Ему приходит первое сообщение из $а. Ответ на него записывается в бд. Как только ответили, бот отсылает второе сообщение из $b. Ответ снова сохраняется. Третим идет вопрос с вариантами ответа $c, $d. Если ответ приходит цифрой из вариантов, то идем дальше на условие if-else, иначе пишем текст с пояснением его ошибки и спрашиваем заново. Если ответ нормальный, то снова пишем его в бд. Ну и т.д.
    Закину полтинник на счет тому, кто первым разместит работоспособный код. Спс. :)
     
  16. JIexaPol

    JIexaPol New Member

    Joined:
    19 Jul 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    чувак, если бы было время - я бы помог бесплатно и объяснил..стукни в асю если можешь тогда объясню как бота делать..я тоже на денвере запускаю :) аська 7876878 просто я на ачате не сижу....
     
    #16 JIexaPol, 1 Aug 2009
    Last edited: 1 Aug 2009
  17. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Идите в ПМ/Аську ругаться, кодеры, блин...
    ТС, стукни мне в аську, 674542, помогу :)
    Естественно бесплатно :)
     
  18. dk-ne

    dk-ne Elder - Старейшина

    Joined:
    21 Jan 2007
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Парни, мне б его сделать в ближайшие дни. Сам бы пробовал всяко разно, но времени впритык, работать заставляют:). Я могу написать в аську часа через три, но времени разбирать мало. Буду признателен за готовое решение. Кстати, забыл написать про плюсики в репутацию на анчате. Мне не жалко
     
  19. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Так что, у тебя получается что бот сам должен писать?
     
  20. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Вообще то, такие вещи пишутся на компилируемом языке.