Как сделать разговорного бота для Вконтакте на PHP

Не для Хабра

Данная статья – продолжение серии моих статей о том, как создается ИИ для профиля VK.COM

Немного времени назад я опубликовал статью на Хабре и из того, что получилось – могу вывести несколько теорий относительно Хабрааудитории:
1. Хабровчане не любят PHP
2. Хабровчане очень сильно не любят PHP
3. Хабра не прощает недописанный код

А теперь, собственно, сама статья:

Интро. Лирика

Как-то в один прекрасный день меня осенила мысль о том, что было бы неплохо, если бы такие повседневные задачи как постинг и поддержание активности аккаунта в какой-либо социальной сети выполнял не человек, а простой разговорный бот. Тем более при “ботнете” в несколько сотен аккаунтов выполнять задачу с помощью одного человека нецелесообразно и почти невозможно. Поэтому возникла идея написать разговорного бота средствами, которые лучше всего мне были известны. Я решил сделать бота на PHP.

База ответов

Начать, как вы уже догадались, нужно было с поиска баз для ответов бота и элементарного технического задания, которое помогло бы сделать все быстро и с минимальным количеством костылей (у меня без костылей не получилось).

Немного раньше я познакомился с одним интересным проектом от компании “Наносемантика”, которая занимается подобными задачами и создает, вроде, комерческих ботов-саппортов и прочее. Этот проект – iii.ru. На сайте проекта можно создать бота и получить его flash-версию для вставки на сайте. API у них не было, пришлось декомпилировать swf.

Закриптовано?!

Первое, что пришло ко мне в голову, когда я открыл декомпилированный код SWF файла – где теперь найти точку вывода ответов и каким образом это все перевернуть в сторону своей задумки. Удивлению не было предела, когда я увидел, что все запросы и ответы шифруются с помощью XOR + Base64, а ключ для расшифровки был в начале кода. Зачем тогда криптовать?

Техническая часть вопроса

Основные задачи, которые должен был выполнять мой бот – получать последние сообщения с “Вконтакте”, отсылать их на сервер, получать ответ, отправлять ответ человеку, который общается с ботом.

Было создано следующие файлы:
– index.php (работает как клиент, обновляющий с помощью jquery файл с подгрузкой пришедших сообщений и последующим ответом)
– autoload.php (собственно, тот файл, который принимает и отвечает)
– showmeid.php (файл, который создает новый ID чата, если собеседник впервые общается с ботом)
– config.php (коннект к базе данных с клиентами бота)
– classes.php (классы для работы с ботом)

Установка

  1. Импортируйте dump.sql в свою базу данных
  2. Получите “долгоиграющий” access token для работы с VK API с помощью ссылки – получить token
  3. Переименуйте config.sample.php в config.php предварительно изменив данные для коннекта к базе данных
  4. Пользуйтесь запустив index.php

Итак, прошу знакомиться – Лариса Чернышова

А также исходники на GitHub.

UPD: Если бот не отвечает – значит блокируется отправка сообщения просьбой ввести капчу.

Как сделать разговорного бота для Вконтакте на PHP: 14 комментариев

  1. Вадим

    Не в этом дело. Статья слабая для хабра. Код плохой. И это не бот а обертка над сервисом. Не удивительно что заминусовали.

    1. meow Автор записи

      Как ни странно, но я согласен. Хотя, функционал, которые требовался на тот момент со своими задачами справлялся.

  2.  

    это не “Хабровчане не любят PHP” а проект уг который не несет в себе ничего интересного

  3. zagsm

    В чём может быть проблема?
    Parse error: syntax error, unexpected ‘[‘ in /var/www/html/vk/vk.api.php on line 30

  4. zagsm

    На втором хостинге пытаюсь настроить, сплошные ошибки сыпятся. У кого-нибудь работает?

  5. ilya

    Notice: Uninitialized string offset: 0 in /var/www/admin/data/www/*****ru/autoupdate.php on line 63
    В чем может быть проблема?

Написать что-нибудь