Интро. Лирика.
Как-то в один прекрасный день меня осенила мысль о том, что было бы неплохо, если бы такие повседневные задачи как постинг и поддержание активности аккаунта в какой-либо социальной сети выполнял не человек, а простой разговорный бот. Тем более при «ботнете» в несколько сотен аккаунтов выполнять задачу с помощью одного человека нецелесообразно и почти невозможно. Поэтому возникла идея написать разговорного бота средствами, которые лучше всего мне были известны. Я решил сделать бота на 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: Если бот не отвечает — значит блокируется отправка сообщения просьбой ввести капчу.
Автор: xjukebox