Как сделать бота в сообщениях группы вк. Как сделать бот вконтакте

04.07.2019

Социальные сети не стоят на месте и Вконтакте, в том числе, сейчас стало модно создавать и делать ботов которые отвечают на вопросы и сообщения пользователей в группах и пабликах вк . В нашей сегодняшней статьей мы научим вас создавать своего бота в вк быстро и совершенно бесплатно.

Как сделать бота в вк для сообщений в группах.

Почему же боты во вконтакте обрели такую популярность? Все достаточно просто и сейчас мы приведем лишь часть примеров, которые помогут нам понять хайп и ажиотаж вокруг самописных чат ботов:

  • Свежо и ново. в вк давно уже ничем не удивить пользователя и паблики и группы стараются выделяться от остальных пабликов конкурентов, тем самым вовлечь пользователей и заинтересовать.
  • Автоматизация многих ручных процессов. Раньше админам пабликов , особенно крупных приходилось часами тратить время отвечая на вопросы пользователей, или нанимать модераторов в свои группы и частенько случались казусы.
  • Автоматически розыгрыш призов и раздачи кодов и аков . Теперь необходимо иметь только огромное количество кличей и призов бот сам раздаст все вашим подписчикам.

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

Как создать бота в вк отвечающего на сообщения.

Стоит отметить что бота можно сделать несколькими способами, но все они подойдут для вас и будут удобными:

  1. Сделать бота на свое пк. Плюсы быстрая настройка и подгонка под любые требования. Минусы, ваш компьютер должен быть онлайн или бот не будет работать.
  2. Написать скрипт и разместить его на сервере. Из плюсов стоит отметить быстроту ответов бота. К минусам стоит отнести сложность создания и настройки, аренду даже самого дешевого хостинга за который все равно придется платить.
  3. Воспользоваться онлайн сервисами по созданию своих ботов для Вконтакте как платными так и бесплатными. Именно таких ботов мы и научим вас делать.

Как создать своего бота в вк

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

  • https://bot-vk.ru
  • https://robochat.io

Понятно будет даже любому ребенку или школьнику все очень просто регистрируемся на сайте.

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

Настраиваем и обучаем бота тому что он должен отвечать кому и как. Профит.
Как видите создать такого бота для Вконтакте может абсолютно каждый.

Для ведения бизнеса во ВКонтакте немаловажную роль играет общение с аудиторией. Ответы на часто задаваемые вопросы, информирование клиентов, прием заявок и просто общение – все это требует большого количества свободного времени. Но оно есть далеко не у каждого руководителя сообщества. Что делать? – Спросите вы. Ответ прост – использовать бота для сообщений.

В сегодняшнем материале будет рассмотрена тема ботов в ВК, способных общаться с людьми, информировать их и тем самым облегчать работу админов.

В чем особенность использования ботов для сообщений?

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

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

Особенности:

  • Автоматизация. От вас требуется лишь качественная настройка. Бот будет самостоятельно анализировать присланное сообщение, подбирать фразы и отвечать.
  • Индивидуальность. Сегодня есть большое количество сервисов, позволяющих создать своего уникального робота и наделить его теми возможностями, которые нужны именно вашему проекту.
  • Высокая эффективность. Бот будет работать 24 часа в сутки, 7 дней в неделю. Он будет отвечать пользователям мгновенно и без промедления.
  • Низкая стоимость. Куда дешевле создать и использовать программу, чем нанимать отдельного человека.

В основу каждого бота входит код, который и отвечает за его функционал и возможности. Чем более проработана программа, тем больше она умеет. Зачастую, выбирая роботизированного собеседника, люди смотрят именно на его возможности и настройки.

Сегодня для многих недостаточно, чтобы бот просто одинаково отвечал всем подряд. Люди жалеют завести такого помощника, который будет общаться, как вполне живой человек. И сегодня это возможно.

Лучшие боты для сообщений ВК

Ниже вашему вниманию будут представлены наиболее популярные боты для сообщений во ВКонтакте.


Онлайн сервис по созданию роботизированных собеседников для ВК. Сервис стал очень популярным, как среди бизнес сообществ, так и среди групп и пабликов для развлечений.

РобоЧат умеет:

  • автоматически отвечать на любые сообщения пользователей;
  • собирать заявки;
  • выдавать купоны и скидки;
  • делать массовые рассылки;
  • проводить тесты;
  • вести потенциальных клиентов по воронке продаж.

Кроме того здесь есть множество полезных функций и инструментов для более качественной настройки автоответчика: ключевые слова, вложения фото/видео, макросы, плагины, таргетинговые сообщения и т.д. Все это позволяет сделать бота более «живым» и максимально полезным.

Чтобы воспользоваться РобоЧатом нужно проделать несколько шагов:

  1. Зайти на сайт сервиса https://robochat.io и зарегистрироваться.
  2. Авторизоваться и привязать сообщества.
  3. Настроить бота или выбрать готовые шаблоны.
  4. Запустить.

Сервис позволит создать робота, работающего сразу с несколькими группами, что очень удобно, когда у вас не одно, а несколько сообществ.

Стоимость сервиса начинается от 399 руб./мес. (если до 100 тыс. подписчиков) и заканчивается 1999 руб./мес. (при любом числе подписчиков). Есть также бесплатная версия (если аудитория до 50 тыс.) и пробная 3-хдневная версия для любого тарифа.


Еще один довольно популярный конструктор ботов для сообщений во ВКонтакте. Сервис специализируется на создании ботов и текстовых рассылок от имени сообщества. С его помощью можно создать уникального помощника, который будет уметь:

  • общаться, как живой человек (чат с ботом, анонимный чат);
  • информировать клиентов и подписчиков (погода, калькулятор, поиск в Википедии, случайные факты);
  • развлекать аудиторию (цитаты, эффекты, сигны, случайные шутки);
  • управлять сообществом (антимат, команды администратора, реакция на медиавложения);
  • рассылать сообщения всем, с кем открыт диалог;
  • выгружать базы ID;
  • добавлять особо надоедливых в ЧС.

Как настроить робота:

  1. Войти на сайт https://bot-vk.ru и авторизоваться.
  2. Выбрать сообщество.
  3. Настроить функционал бота или выбрать готовые решения (шаблоны).
  4. Запустить бота и наблюдать за его работой.

Стоимость сервиса – 100 руб./мес. за группу и 500 руб. единожды за использование модуля рассылки. Есть также и бесплатный пробный период на 3 дня.


Это многофункциональная программа для продвижения социальных сетей и медиа. Одной из функций БроБота является автоответчик (или бот для сообщений), который работает в 6-ти соц. сетях, в число которых входит и «ВКонтакте».

Возможности автоответчика в ВК:

  • автоматический ответ на любые сообщения (при желании можно ответить вручную);
  • ответы по ключевым словам;
  • прикрепление медиа файлов (фотографий, видеозаписей);
  • интеграция с сервисом iii.ru (обучите там бота и используйте его);
  • поддержка синонимов;
  • скрипты на JavaScripts;
  • готовые шаблоны;
  • возможность отвечать в беседах.

Как воспользоваться программой:

  1. Скачать с сайта и установить на свой ПК.
  2. Авторизоваться и привязать аккаунты ВК.
  3. Назначить анкетам задачи (выбрать наиболее подходящий вариант переписки).
  4. Настроить задачу.
  5. Запустить программу.

Сервис сразу же начнет отвечать на входящие сообщения, в зависимости от выбранного вами способа переписки.

Стоимость сервиса – от 599 руб./мес. (за 10 анкет) до 1799 руб./мес. (за неограниченное число анкет). Если вы используете одну анкету, вы можете пользоваться БроБотом бесплатно (полный функционал).


Это удобный бот для сообщений во ВКонтакте, имеющий большое количество шаблонов и готовых решений для общения с аудиторией. При желании вы также можете настроить бота вручную.

Что умеет BOTiX:

  • Автоматически отвечать на любые сообщения пользователей;
  • Приветствовать новых участников группы или паблика;
  • Следить за комментариями на стене (фильтры по ключевым словам, антимат);
  • Переписываться сразу с нескольких аккаунтов и многое другое.

Воспользоваться роботом очень просто:

  1. Скачайте его на сайте и установите на свой ПК.
  2. Авторизуйтесь и добавьте аккаунты.
  3. Перейдите в раздел «Автоответчик» и настройте бота. Можно добавить готовые шаблоны или настроить вручную.
  4. Запустите программу.

Стоимость сервиса – 50-100 руб./мес. Также есть и бесплатная пробная версия с ограниченным функционалом.

Плюсы и минусы

Роботизированные собеседники для общения во ВКонтакте обладают рядом преимуществ и недостатков. Давайте поговорим о них.

К плюсам можно отнести:

  • полная автоматизация процесса. Вам нужно лишь правильно настроить бота;
  • экономия личного времени;
  • программа работает круглые сутки без перерыва и отвечает без промедления;
  • возможность глубокой проработки автоответчиков, чтобы те общались как живые люди;
  • большой выбор сервисов;
  • низкая стоимость.

К минусам можно отнести:

  • необходимы определенные знания о ЦА, чтобы правильно настроить общение по ключам;
  • при недостаточной проработке, люди будут видеть, что с ними общается робот. Это отталкивает.

Итог

Боты для сообщений во ВКонтакте завоевали большую популярность среди владельцев сообществ. При грамотном и правильном использовании, данный софт сделает жизнь паблика интереснее и поспособствует увеличению продаж. Используйте ботов с умом!

"Боты" - это новое направление в социальных сетях. Данная тема интересует очень многих пользователей. зачем он нужен, как создать "бота" в "ВК", его страничку, самостоятельно и не используя никаких элементов программирования? Ответы на эти вопросы можно найти в данной статье.

Что такое "бот"?

На самом деле все очень просто. "Бот" в социальных сетях - это несуществующий человек, которого на самом деле просто нет. Это фейк. Еще их называют "мертвыми душами", прямо как в повести Гоголя, несуществующие люди, но числящиеся в некоторых структурах. В данном случае будут рассмотрены фейки в социальной сети "ВКонтакте". "Живое" отображение "бота" представлено в виде анкеты тех людей, которые на самом деле не существуют, или это заброшенные странички пользователей, а возможно, даже и копии, но реальные владельцы об этом не знают. Что умеет делать такой "бот"? Ничего, он просто есть и все. Он не умеет читать или писать и вообще ничего.

Для чего нужен "бот"?

Как уже было сказано выше, все такие фейки абсолютно ничего не делают, если, конечно, не устанавливать для них специальную программу. Так зачем он тогда вообще нужен? Основная его функция заключается в том, чтобы при помощи таких "ботов" повысить численность нужной группы. Для раскрутки любого сообщества требуются подписчики или члены. Именно такую функцию выполняют боты.

Поиск в социальной сети в "ВКонтакте" на первых позициях выдает именно то сообщество, в котором больше численность. Это очень важный момент, чем больше участников, тем выше они в рейтинге. Получается своеобразный парадокс. Чтобы пригласить реальных людей, нужно раскручивать сообщество при помощи ботов. Постепенно в группу будут приходить настоящие, существующие пользователи. "Живая активность" сообщества будет развиваться и перейдет в естественный процесс.

Как создать страницу "бота" в "ВК" самостоятельно?


1. В любой поисковой системе находим страницу регистрации в "ВК". В графе "имя" пишем любое имя. В строке "фамилия" какую-либо, лучше всего распространенную, фамилию. Нажимаем "зарегистрироваться".

3. После подтверждения для вас откроется чистая страничка, которую нужно заполнить.

Теперь, после регистрации, переходим к главному вопросу, а именно "Как создать бота в "ВК"?". На страничке нового пользователя нужно заполнить все обязательные поля. А конкретно следующие:

1. Основное: имя и фамилию вы уже заполнили. Значит, нужно указать пол, семейное положение, дату рождения, город, язык. Далее - дедушки, бабушки, родители, братья, сестры, дети, внуки - добавляете нужные. Нажимаете "сохранить".

2. Контакты: нужно добавить страну, Skype, личный сайт. Можно последние пункты и не добавлять.

3. Интересы: надо вписать деятельность. Указать как можно большее количество, интересов (книги, путешествия, юмор и другое). Далее заполнить - любимая музыка, затем фильмы, телешоу, книги, игры, цитаты и написать что-либо "о себе", а затем сохранить.

4. Следующее - образование, указать школу, учебные заведения и сохранить.

5. Карьера: нужно вписать место учебы и работы, можно несколько, и также сохранить.

6. Служба: только для мужского пола.

7. Жизненная позиция: надо заполнить - мировоззрение, главное в жизни, главное в людях, отношение к курению, отношение к алкоголю, источник вдохновения, и все это также сохранить.

Итак, основные данные заполнены, переходим на следующий этап.

Второй этап - добавление фотографий

Итак, переходим на второй этап решения вопроса "Как создать бота в "ВК"?". Теперь надо добавить аватарку и фотографии.

1. Находим в интернете в разделе "картинки" подходящие фотографии. Загружаем их к себе на компьютер и сохраняем.

2. Желательно найти фотографии несколько штук одного какого-либо человека. В таком случае можно создать видимость "живого и реального пользователя".

3. Фотографию для аватарки подбираем среднего размера, на ней должно быть отчетливо видно лицо нашего "бота". Нельзя брать животных или какие-либо экстравагантные снимки. Все должно быть приближено к реальности. Загружаем на страничку "ВК" и сохраняем.

4. Теперь добавляем фотографии, чем их больше, тем лучше. Они могут быть любыми. "Бот" может на них быть запечатлен как в единственном числе, так и с компанией и с группой людей. Нужно загрузить хотя бы 4-5 фотографий. Переходим на следующий этап и узнаем, как создать "бота" в "ВК", заключительные действия.

Оживление "бота"

Теперь нужно добавить больше жизненности фейку.

Третий этап решения задачи "Как создать "бота" в "ВК"?" подразумевает самые активные действия. На страничку нового фейка надо загрузить несколько видеороликов, какие-либо аудиозаписи. А также добавить друзей. Как создать "бота" в "ВК" без программ, так сказать, в ручном режиме? Это потребует затрат вашего личного времени. Дело в том, что друзей придется добавлять вручную. Создавать запросы в друзья и принимать придется ежедневно. Чтобы лжепользователь казался еще более живым, нужно, чтобы он общался. "бота" в "ВК"? Можно это сделать двумя способами: установить специальную программу или ежедневно самостоятельно писать в чате и общаться с другими пользователями от его имени.

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

Из прошлых статей мы создавали простой скрипт для переписки. Были рассмотрены базовые возможности. На этот раз мы напишем чат-бот с командами. Реализуем такие команды:

  • город [название города]. Данной командой задается город собеседника, бот запомнит его, сохранит в файл. Эти данные будут доступны даже после перезапуска программы.
  • погода . Бот отправляет текущую температуру в городе собеседника.
  • пробки . Бот получает скриншот Яндекс.Карт с состоянием пробок и отправляет картинку.
  • события . Бот отправляет список событий в городе собеседника.
  • пришли на email . Бот сохраняет email собеседника в файл.

Город

Город собеседника мы будем хранить в текстовом файле. Для каждого скрипта создается отдельная папка в которой он может хранить произвольные файлы, которые будут переживать перезапуск программы. Папка будет создана рядом со скриптом. Рассмотрим фрагмент кода по обработке команды город .

Var cityFile = profile + "__" + contact; if (content.startsWith("город ")) { var city = content.substring(6); log.info("Saving city for contact " + contact); tools.writeToFile(cityFile, city); return "Теперь я знаю твой город."; }

В переменную cityFile мы сохраняем имя файла. Далее с помощью вызова метода tools.writeToFile(file, data) мы сохраняем город в файл. Обратите внимание, что функцией writeToFile пользоваться небезопасно в случае если несколько анкет выполняют один и тот же скрипт и обращаются к одному и тому же файлу. Поэтому мы используем id анкеты в имени файла, чтобы исключить такие конфликты.

Для чтения из файла используется метод tools.readFromFile(file). Данная функция читает весь файл и возвращает содержимое. Если файла не существует, функция возвращает пустую строку.

Var city = tools.readFromFile(cityFile); if (city.isEmpty()) { return "Я не знаю твой город:("; }

Выбор имени файла

Мы используем текстовый файл для хранения города собеседника. Как уже было замечено, имя файла нужно выбирать аккуратно. Так, чтобы несколько анкет не обращались к одному и тому же файлу.

Var profile = hist.localContact().getID().toString(); var contact = hist.externalContact().getID().toString(); var cityFile = profile + "__" + contact;

Здесь мы получаем данные об анкете в боте через метод hist.localContact(). Далее методом getID() получаем внутренний идентификатор анкеты (выглядит примерно так profile_www.vk.com_+79129192508). Аналогично получаем идентификатор собеседника (id361493719). В результате в переменной cityFile получаем profile_www.vk.com_+79129192508__id361493719. Поскольку имя содержит идентификатор анкеты, добавленной в бот, другая анкета не сможет сгенерировать такое же имя файла и конфликтов не будет.

Погода

Для получения данных о погоде воспользуемся сервисом openweathermap.org. Нужно зарегистрироваться и получить бесплатный ключ для доступа к API. Далее отправить HTTP-запрос с названием города и получить в ответ JSON с данными.

Function getWeather(city, tools) { city = city.replace(" ", "%20"); var apiKey = "43599b515694631087a103907284116d"; var url = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + apiKey + "&units=metric"; return JSON.parse(tools.httpGet(url)); }

Для выполнения HTTP-запроса используем метод tools.httpGet(url). Метод возвращает тело HTTP-ответа. Обратите внимание, что пробелы в названии города мы заменяем на специальный код.

Пробки

Получать данные о пробках будет с Яндекс.Карт также через выполнение HTTP-запроса.

Function getTraffic(city, file, log, tools) { log.info("Getting coordinates for city " + city); city = city.replace(" ", "%20"); var url = "https://geocode-maps.yandex.ru/1.x/?geocode=" + city + "&format=json"; var resp = JSON.parse(tools.httpGet(url)); var coord = resp["response"]["GeoObjectCollection"]["featureMember"]["GeoObject"]["Point"]["pos"].replace(" ", ","); log.info("Coordinates are: " + coord + ", getting traffic pic"); var url = "https://static-maps.yandex.ru/1.x/?ll=" + coord + "&spn=0.1,0.1&l=map,trf"; return tools.download(url, file); }

Сервис Яндекс.Карт возвращает данные о пробках по географической координате. У нас же есть только строковое название города. Поэтому сначала мы отправляем HTTP-запрос на получение данных о городе на другой сервис. Среди прочего в ответе есть данные о координате. Координату используем для другого HTTP-запроса. Обратите внимание, что для получения картинки с пробками мы используем метод tools.download(url, file). Этот метод также выполняет HTTP GET запрос, но сохраняет бинарный результат в файл. Метод получает URL и имя файла для сохранения ответа. Обратите внимание, что в имени файла должно быть только имя, без путей. Метод возвращает полный путь к этому файлу.

События

Для получения событий в конкретном городе воспользуемся API timepad.ru .

Function getEvents(city, tools) { city = city.replace(" ", "%20"); var url = "https://api.timepad.ru/v1/events.json?limit=10&skip=0&cities=" + city + "&fields=location&sort=+starts_at"; return JSON.parse(tools.httpGet(url)); }

Пришли на email

Воспользуемся методом tools.appendToFile(file, line). Метод добавляет строку line в файл file (только имя файла, без путей). Данный метод является безопасным для использования из нескольких анкет с одним и тем же именем файла. Таким образом удобно собирать какие-то сообщения или фрагменты сообщений от пользователей в одном файле. В данном скрипте мы будем собирать email адреса пользователей.

If (content.startsWith("пришли на email ")) { var email = content.substring(16); tools.appendToFile("emails", email); }

Весь скрипт

Приведем весь код скрипта.

Function getTemplates() { return ; } function getWeather(city, tools) { city = city.replace(" ", "%20"); var apiKey = "43599b515694631087a103907284116d"; var url = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + apiKey + "&units=metric"; return JSON.parse(tools.httpGet(url)); } function getTraffic(city, file, log, tools) { log.info("Getting coordinates for city " + city); city = city.replace(" ", "%20"); var url = "https://geocode-maps.yandex.ru/1.x/?geocode=" + city + "&format=json"; var resp = JSON.parse(tools.httpGet(url)); var coord = resp["response"]["GeoObjectCollection"]["featureMember"]["GeoObject"]["Point"]["pos"].replace(" ", ","); log.info("Coordinates are: " + coord + ", getting traffic pic"); var url = "https://static-maps.yandex.ru/1.x/?ll=" + coord + "&spn=0.1,0.1&l=map,trf"; return tools.download(url, file); } function getEvents(city, tools) { city = city.replace(" ", "%20"); var url = "https://api.timepad.ru/v1/events.json?limit=10&skip=0&cities=" + city + "&fields=location&sort=+starts_at"; return JSON.parse(tools.httpGet(url)); } function handle(content, profile, contact, log, tools) { log.info("Got message: " + content + " from " + contact + " to " + profile); var cityFile = profile + "__" + contact; if (content.startsWith("город ")) { var city = content.substring(6); log.info("Saving city for contact " + contact); tools.writeToFile(cityFile, city); return "Теперь я знаю твой город."; } else if (content.startsWith("погода")) { var city = tools.readFromFile(cityFile); if (city.isEmpty()) { return "Я не знаю твой город:("; } log.info("Getting weather for city " + city); var weather = getWeather(city, tools); return "Температура: " + weather["main"]["temp"]; } else if (content.startsWith("пробки")) { var city = tools.readFromFile(cityFile); if (city.isEmpty()) { return "Я не знаю твой город:("; } var trafficFile = profile + "__" + contact + ".png"; var fullFileName = getTraffic(city, trafficFile, log, tools); return "такие пробки "; } else if (content.startsWith("пришли на email ")) { var email = content.substring(16); tools.appendToFile("emails", email); return "Спасибо! Я напишу."; } else if (content.equals("события")) { var city = tools.readFromFile(cityFile); if (city.isEmpty()) { return "Я не знаю твой город:("; } log.info("Getting events for city " + city); var events = getEvents(city, tools)["values"]; log.info("Got " + events.length + " events"); var result = ""; for (var i = 0; i < events.length; ++i) { var dateTime = events[i]["starts_at"]; var dateTimeStr = dateTime.substring(0, 10) + " " + dateTime.substring(11, 17); var name = events[i]["name"]; result += (i + 1) + ". " + dateTimeStr + " " + name + "\n"; } return result; } return ""; } function getAnswer(hist, log, tools) { var profile = hist.localContact().getID().toString(); var contact = hist.externalContact().getID().toString(); var toReply = hist.unansweredMessages(); var result = ""; for(var i = 0; i < toReply.size() ; ++i) { var message = toReply.get(i); var content = message.content().toLowerCase(); var dup = false; for(var j = 0; j < i && !dup; ++j) { dup = content.equals(toReply.get(j).content().toLowerCase()); } if (!dup) { result += handle(content, profile, contact, log, tools) + " "; } } return result; }

Пример работы

Что еще можно получить из истории

Из истории переписки в скрипте можно получить некоторую дополнительную информацию об анкете и собеседнике. А именно.

Продолжаем цикл статей посвященный написанию чат-ботов для социальных сетей на php. Прошлый раз мы создавали бота для Телеграм, а в этот раз я расскажу как сделать аналогичного бота для ВКонтакте. Забегая вперед скажу, что сегодня мы не будем использовать ВКшный PHP SDK и наш бот будет состоять лишь из одного файла (про SDK поговорим в другой раз).

Также, как и в случае с Телеграмм ботом нам потребуются минимальные навыки программирования на php, хостинг и ssl сертификат. Готовы? Приступим!

Что будет уметь наш бот?

Возможности бота ограничены лишь фантазией программиста (благо api вк многое позволяет), поэтому для примера наш бот будет уметь лишь самое простое, а именно:

  1. Отправлять уведомления при вступлении в сообщество;
  2. Отвечать в случае если пользователь отправил ЛС в чат группы;
  3. Отправлять уведомление в момент когда пользователь покидает группу.

Начинаем создавать бота

Прежде чем начнем писать код, создадим ключи доступа для нашего бота. Для этого перейдем в Управление сообществом, выберем справа «Работа с API» и нажмем на «Создать ключ».

Во всплывающем окне отметим галочками права доступа. В нашем случае достаточно лишь поставить галочку напротив пункта «Разрешить приложению доступ к сообщениям сообщества «, но имейте ввиду, что для более крутых ботов стоит ставить галки напротив всех пунктов сразу. Подтвердим действие нажатием по кнопке «Создать».

Теперь перейдем во вкладку Callback API->Настройки сервера. Здесь нас интересуют сразу 3 вещи: Адрес, Строка, которую должен вернуть сервер и Секретный ключ. Адрес пока пропустим (в целом вы можете сразу его заполнить если определились с тем, где будет лежать основной файл нашего php-бота, но поскольку сам файл еще не создан, то ВК будет ругаться, ибо сразу после ввода url соцсеть отправляет POST-запрос на проверку доступности бота по указанному адресу). Скопируем значение напротив «Строка, которую должен вернуть сервер» (confirmationToken). (в нашем случае это tt32e1 . Придумает Секретный ключ (secretKey). Не забываем нажать «Сохранить».

Итак, на выходе у нас должны быть где-то записаны 3 вещи:

  1. confirmationToken
  2. token
  3. secretKey

Теперь можно приступить к написанию php кода.

Как создать бота в ВК (кодинг на php)

Начинаем писать файл нашего бота ВКонтакте. Назовем его vk_bot.php. Напомню, что код необходимо писать в кодировке UTF-8 (без BOOM).

Определимся с константами:

if (!isset($_REQUEST)) {return;}
// Строка, которую должен вернуть сервер (См. Callback API->Настройки сервера)
$confirmationToken = "tt32e1";
// Ключ доступа сообщества (длинная строчка которую получили нажав "создать ключ")
$token = "тутбудетмногобуквицифр";
// Секретный ключ. (Задаем в Callback API->Настройки сервера)
$secretKey = "testKeyMyBot";

Теперь проверим поступившие данные:

// Получаем и декодируем уведомление
$data = json_decode(file_get_contents("php://input"));
// проверяем secretKey
if (strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, "confirmation") !== 0) {return;}

Используя switch проверим, что находится в поле «type» (какое событие сработало и в зависимости от этого сформируем ответ).

// Проверяем, что находится в поле "type"
switch ($data->type) {
// Запрос для подтверждения адреса сервера (посылает ВК)
case "confirmation":
echo $confirmationToken; // отправляем строку для подтверждения адреса
break;
// Если это уведомление о новом сообщении...
case "message_new":

$userId = $data->object->user_id;



$user_name = $userInfo->response->first_name;

$request_params = array(
"message" => "{$user_name}, Ваше сообщение получено!
В ближайшее время админ группы на него ответит.",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);



break;
}

Небольшое пояснение:

Когда юзер отправляет сообщение в чат с группой срабатывает событие. Событие представляет собой JSON, имеющий следующую структуру:

{«type»: <тип события>, «object»: <объект, инициировавший событие>, «group_id»: }

В зависимости от того, что нам пришло в type, мы можем понять, какая структура будет у объекта object. Полный список возможных событий см. в официальной справке ВКонтакте.

Итак, на данный момент мы научили нашего бота 2-м вещам: корректно отвечать роботу ВК на проверочный запрос, а также автоматически отправлять пользователю уведомление в случае, если он отправит любой текст.

Теперь можно закачать наш с вами файл на сервер и заполнить в настройках адрес (если не сделали этого ранее).

Кроме этого необходимо перейти во вкладку «Типы событий» и поставить галочку напротив «Входящие сообщения».

Теперь можем проверить работу:

Как видим - все пашет. По сути у нас уже получилось сделать бота в вк. Давайте его немного прокачаем.

Добавим в конструкцию case еще 2 условия. Первое - отправит уведомлений в случае если человек вступил в нашу группу:

// Сработало событие - человек вступил в группу
case "group_join":
// получаем id автора сообщения
$userId = $data->object->user_id;
// через users.get получаем данные об авторе
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
// Вытаскиваем имя отправителя
$user_name = $userInfo->response->first_name;
// Через messages.send используя токен сообщества отправляем ответ
$request_params = array(
"message" => "Добро пожаловать в группу, {$user_name}!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Возвращаем "ok" серверу Callback API
break;

Второе - аналогичное уведомление, но только в момент, когда человек покинет сообщество:

// Сработало событие - человек покинул группу
case "group_leave":
// получаем id автора сообщения
$userId = $data->object->user_id;
// через users.get получаем данные об авторе
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
// Вытаскиваем имя отправителя
$user_name = $userInfo->response->first_name;
// Через messages.send используя токен сообщества отправляем ответ
$request_params = array(
"message" => "{$user_name}, нам очень жаль, что вы покинули нашу группу!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Возвращаем "ok" серверу Callback API
break;

Не забудем добавить соответсвтующие галочки напротив нужных нам событий в настройках группы:

Чего нельзя делать ботам

Не лишним будет процитировать один из разделов справки ВК:

Теперь вы знаете как создавать своего бота в ВК. Исходники урока можно скачать тут. В следующий раз поговорим о работе с PHP SDK для вк-ботов. Если у вас остались вопросы - задавайте в комментах. И не забываем репостить и лайкать эту статью)

Похожие статьи