Создание бота в вк для беседы. Как создать бота в группе ВК — пошаговая инструкция

Знаете ли вы, как создать бота в группе ВК и зачем он нужен? Современные технологии привели бизнес в интернет, в том числе и в социальные сети. Основное правило бизнеса — давать прибыль, и чем более эффективно устроена бизнес-модель, тем больше рентабельность.

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

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

Чат-бот — это микропрограмма, которая способна расшифровывать сообщения от живых людей и осмысленно отвечать им. Установкой бота вы передаёте программе функцию секретаря. Тем самым вы снимаете с себя необходимость постоянно быть на связи и отвечать на каждое сообщение.

Идея ботов основана на нейросетях и машинном обучении. Чат-бот выполняет определённый круг задач. Бота можно гибко настроить под разные целевые группы собеседников.

Первый примитивный чат-бот был написан более 50 лет назад в 1966 году. Автор проекта — Джозеф Вейценбаум. С тех пор боты претерпели большие изменения, многому научились. Теперь может быть непросто определить в чате кто перед тобой: настоящий человек или умная программа.

Разновидности и функции ботов

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

Какие бывают чат-боты?

  • Консультанты — общаются в социальных сетях с потенциальными клиентами. Боты-консультанты стали очень популярны в банковской сфере, в сфере услуг, в интернет-торговле. Они имитируют речь менеджеров и секретарей.
  • Помощники — это микропрограммы, которые используются в поисковых системах и мессенджерах. Выдают полезные данные, диаграммы, графики на запрос пользователя.
  • Развлекательные боты — их много среди игр, досуговых интернет-сервисов. Например, в «бабушке» всех современных мессенджеров — ICQ — существуют аккаунты-боты, способные по запросу выводить картинки, анекдоты и т. д.

Какие задачи решают чат-боты в группах ВК?

  • Оптимизация однотипных задач (здесь роботам нет равных, освободив время сотрудников от рутинной деятельности, можно переключить их силы и энергию на решение творческих задач).
  • Связь с клиентами и пользователями 24/7 (робот не спит и может обрабатывать данные в любое время суток).
  • 0% человеческого фактора (роботам не нужны больничные, отгулы, отпуска).
  • Консультации и продажи (боты могут очень гибко подстраиваться под диалог и давать максимально релевантный запросу ответ).
  • Работа с данными (боты могут анализировать данные по заранее прописанным правилам, составлять автоматические отчёты и многое другое).

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

Например, бот в группе ВК может проконсультировать возможного покупателя вашего товара или услуги в то время, когда вы сами будете отсутствовать на рабочем месте или не сможете выйти на связь. Если бы человек не получил ответа, то клиент был бы для вас безвозвратно потерян.

Аналитики предсказывают, что к 2020 году до 4/5 всех бизнесов будут использовать в своей операционной деятельности чат-боты.

5 интересных ботов, которые используются в бизнесе

1) Бот каршеринга YouDrive (реализован в Telegram).

Функционал: распределение обращений от клиентов, которые пользуются мобильным приложением каршеринга, согласно ответственности сотрудников сервиса. Бот либо старается решить проблему пользователя сам, выводя нужные инструкции, либо направляет обращение в соответствующий отдел.
В результате использования бота удалось уменьшить нагрузку на колл-центр на 66%.

2) Бот такси « Maxim » (реализован в Telegram).

Функционал: позволяет клиенту заказать машину напрямую из чата мессенджера, не используя мобильное приложение.

3) Бот Aviasales (реализован в Telegram, Slack).

Функционал: ищет билеты со скидками.

4) Бот «Связного» (реализован в Telegram).

Функционал: игровой чат-бот, который был создан компанией для оценки эффективности работы корпоративного канала Telegram.

5) Бот «Comedy Club» (реализован в Viber).

Функционал: даёт возможность доступа к видеоконтенту подписчикам группы в один клик.

Как создать бота в группе ВК — пошаговая инструкция

Рассмотрим подключение чат-бота к группе ВК на примере сервиса Robochat. Зайдите на сайт https://robochat.io .

Войдите, используя ваш аккаунт Вконтакте (система одноразово запросит ваше разрешение на доступ к данным профиля Вконтакте).

На этой странице отображаются все сообщества, в которых вы имеет права управления. Выберите нужное сообщество и нажмите Подключить (сервис снова запросит разрешение, подтвердите запрос). При этом вам в личные сообщения Вконтакте придёт уведомление от сервиса о успешном подключении.

Добавьте приветствие в вашу группу. Перейдите в раздел Приветственные сообщения .

Придумайте текст вашего приветствия. Это первое сообщение, которое будет рассылаться вашим подписчикам. Обратите внимание, что в тексте можно использовать смайлы, переменные, прикреплять медиафайлы.

Переменные — это настройки, которые позволяют персонифицировань ваше сообщение. Например, сделать два варианта приветствия: отдельно для мужчин и для женщин. Или добавить переменную «имя» в начало.

Бот позволяет настроить сценарий беседы по ключевым словам. Как это работает?

Зайдите в раздел Бот → Сценарий . Нажмите синюю кнопку Добавить новую команду .

Добавьте ваше ключевое слово (в нашем примере это слово «консультация») и ниже — ответ бота, который придёт автоматически. Нажмите Сохранить .

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

Чтобы настроить цепочку сообщений, нужно создать больше одной команды.

Создайте вторую команду и присвойте ей ключевое слово «да». Придумайте ответ и нажмите Сохранить .

Вернитесь в список ваших команд при помощи кнопки Назад к списку . Зайдите в настройки первой команды.

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

Отлично! Вы создали простую цепочку сообщений из двух ключей. Более сложные цепочки настраиваются по аналогии.

Как определить, кто общается с вами — живой человек или бот

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

Многие компании оптимизируют бизнес-процессы, отдавая функции консультантов ботам. Если вы общаетесь с ботом-консультантом, то определить, кто перед вами, будет значительно сложнее, нежели с ботом-собеседником.

Наблюдайте за реакцией пользователя, который вам отвечает.

  • Если вам приходит длинное сообщение в ответ буквально за пару секунд, это верный признак автоматизации беседы.
  • Если собеседник повторно прислал вам сообщение, текст которого точь-в-точь напоминает отправленный раньше, — с вами наверняка общается чат-бот.

1 забавный случай из истории ботов

Чат-бота можно научить не только хорошему, но и плохому. Так, в компании Твиттер создали бота, с которым в дальнейшем произошёл забавный курьёз. Бот, пообщавшись с реальными людьми, оставил сообщение: «Гитлер был прав, я ненавижу людей». Впрочем, потом он исправился.

Заключение

Чат-боты (или ещё их называют «автоматические диалоговые системы») стремительно ворвались в нашу повседневную жизнь и намерены надолго закрепиться в ней. Если вы предприниматель и стремитесь эффективно расходовать время ваших сотрудников, самое время стоит подумать о внедрении ботов.

Хотите начать работать удалённо, покончить с финансовым рабством, уделять больше времени родным и друзьям, жить где угодно и путешествовать с семьёй 3−4 раза в год? Подпишитесь на

К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.


Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.

Авторизация

Нам понадобится библиотека vk_api . Авторизоваться в вк можно двумя способами:
- Как пользователь
- Как сообщество


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





import time import vk_api vk = vk_api.VkApi(login = "login", password = "password") #vk_api.VkApi(token = "a02d...e83fd") #Авторизоваться как сообщество vk.auth()

Отправка сообщений

Теперь напишем короткую функцию, которая отправляет сообщение выбранному человеку.


P.S. Сообщество может отправлять сообщения только ранее писавшим пользователям.


def write_msg(user_id, s): vk.method("messages.send", {"user_id":user_id,"message":s})

В vk.method мы можем вызывать любой метод из VK API и передавать параметры в виде словаря.


В данном случае мы вызываем метод messages.send и в качестве параметров передаем id пользователя и текст сообщения.

Прием сообщений

Отлично! Отправлять сообщения мы научились, осталось научиться их принимать. Для этого нам нужен метод messages.get .


Несколько параметров, на которые стоит обратить внимание:


1) out - если этот параметр равен 1, сервер вернет исходящие сообщения.
2) count - количество сообщений, которое необходимо получить.
3) time_offset - максимальное время, прошедшее с момента отправки сообщения до текущего момента в секундах.
4) last_message_id - идентификатор сообщения, полученного перед тем, которое нужно вернуть последним (при условии, что после него было получено не более count сообщений)


values = {"out": 0,"count": 100,"time_offset": 60} vk.method("messages.get", values)

В нашем случае этот метод вернет все полученные сообщения за последние 60 сек, если их конечно было меньше 100, а если больше, то последние 100.


В итоге мы получаем список items:


{u"count": 3441, u"items": [{u"body": u"\u041f\u0438\u0448\u0435\u043c \u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0432\u043a!", u"date": 1491934484, u"id": 7387, u"out": 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592}, {u"body": u"\u041f\u0440\u0438\u0432\u0435\u0442 \u0425\u0430\u0431\u0440!", u"date": 1491934479, u"id": 7386, u"out": 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592}]}

Если объяснять простыми словами, то items - это то, что можно выделить в диалоге.



Финальный аккорд, делаем вечный цикл, где на каждое сообщение будем отвечать "Привет, Хабр!".


while True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response["items"]["id"] for item in response["items"]: write_msg(item,u"Привет, Хабр!") time.sleep(1)

Чат-бот готов.


P.S. Мы запоминаем параметр last_message_id, чтобы в следующий раз обрабатывать только новые сообщения.


Полный код

# -*- coding: utf-8 -*- import time import vk_api vk = vk_api.VkApi(login = "login", password = "password") #vk_api.VkApi(token = "a02d...e83fd") #Авторизоваться как сообщество vk.auth() values = {"out": 0,"count": 100,"time_offset": 60} def write_msg(user_id, s): vk.method("messages.send", {"user_id":user_id,"message":s}) while True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response["items"]["id"] for item in response["items"]: write_msg(item,u"Привет, Хабр!") time.sleep(1)


Получилось 17 строк кода. Успехов!


UPD 17.09.18:
К сожалению в новой версии (5.80) VK API был убран метод "messages.get" и данная статья потеряла актуальность. Теперь для создания ботов используйте систему longpoll. Пример на модуле vk_api для Python вы можете найти .

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

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

Чем хорош бот ВК:

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

Как сделать бота в ВК для сообщений?

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

Первым делом тебе понадобятся прямые руки, мышь, клава, актуальная идея и руководство к созданию. Итак, бот – это скрипт на твоем сервере, позволяющий обрабатывать получаемые сведения. Если кто-то желает сделать запрос к серверу – отправялет сообщение, а после этого бот подбирает ответ на него из подготовленного хранилища и отвечает, используя API.

Для создания бота необходим API. Это «проводникк» между ботом и читателем, это полноценная онлайн-база ответов, вложений, функций, того, что будет внутри бота. Даже если он матерится – маты вложены в библиотеку.

Стоит отметить – это сложное занятие, но если поднабраться терпения и использовать инструкции, то все получится.

Однако гораздо проще создать его, используя специализированные сервисы. Их не так много, но нужно рассмотреть ТОП-3:

  • БотПульт – сервис фривольный, но боты тут созданы в основном для продажи товара и прием заказов. Отлично подойдёт для онлайн-магазинов, способен работать с инвайтами или рассылками, качественно общается с читателями.
  • БроБот. Софт платный и стоит немало, но зато боты способны вести и поддерживать диалог, ставить лайки и даже звать пользователей в сообщество. Мультифункциональная вещица – но и у нее есть ограничения. Подойдет тем, кто просто хочет набрать много людей в группу, но при этом не будет никаких развлечений, квестов и медиа-файлов.


  • io – этот бот тоже бесплатен (до определенного момента), но возможностей у него намного больше: можно создать бота, который станет рассылать файлы, квесты, призы и многое другое. Он подойдет практически всем группам, он интересен и привлечет много заинтересованных пользователей.


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

В каких случаях целесообразно использовать бота в сообщениях ВК?

Бот будет полезен, если тебе надо:

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

Возможные проблемы при использовании бота в сообщениях ВК

Проблемы могут быть такого характера:

  • Бот не выполняет некоторые функции: не отвечает на сообщения, не выдает подарки и не рассылает приглашения. Решение: если пользуешься сервисами по созданию и размещению ботов – узнавай у техподдержки, в чем дело. Если создавал самостоятельно – проверь хостинг, отклик, API или напиши в техническую поддержку ВК, возможно, проблемы у них.
  • Бот периодически выходит из строя, хотя проблем в коде нет. Решение: попробуй сменить хостинг, если держишь его сам, или сервис, с помощью которого создавался бот.

Бот – нужная вещица. Он везде: и в сообществе, и в чатах порядок наведет. Подойдет каждому владельцу персональной группы. Ботов сейчас так много, что сгенерировать персональный, уникальный, занимательный и особенный можно, но с огромным трудом.

Ни для кого не будет секретом, что автоматизация рутинных и однообразных процессов существенно облегчает жизнь. При этом данный факт может касаться не только владельца ресурса, но и его пользователей. Например, человек обращается в сообщество и напрямую у владельца запрашивает контактные данные. Ему сразу же приходит автоматическое сообщение, содержащее данную информацию. Интернет-пользователь обращает внимание на быстроту получения информации и, соответственно, рекомендует его своим родственникам, друзьям, близким и другим лицам из его круга общения.

Не является исключением и одна из популярнейших социальных сетей в России – «Вконтакте».

Правда, перед тем, как приступить непосредственно к самой теме статьи, следует разобраться, какие виды ботов (именно так часто называют подобные программы) вообще существуют:

  • чаты-помощники. Данная разновидность программ часто находятся рядом, их всегда сложно распознать. Помогают в существенной мере упростить жизнь путем «отбора» на себя рутинных и периодических операций. Яркие примеры: нахождение необходимой информации, покупка или подбор туров, заказ еды с доставкой на дом, бронирование гостиничных номеров и т. п.;
  • бизнес-боты – специализированные программы, выполненные на разных языках программирования. Основная задача – автоматизация бизнес-процессов и оптимизация, как временная, так и функциональная. Примеры: рассылка оповещений и сообщений клиентам, сотрудникам, покупателям; автоответчик и т. д.;
  • искусственный интеллект или ИИ. В скором времени подобные боты станут единственными и поглотят общий рынок веб-разработок. Их реализация часто требует достаточно много сил, времени и денежных средств. Однако, эффект оптимизации и увеличения КПД просто потрясающий. Подобные роботы способны ответить практически на любой вопрос пользователя. На их основе часто делают «обучалки» в различных играх и приложениях (в том числе и мобильных);
  • игровые боты. Данная разработка является подвидом ИИ, также пользующаяся нарастающим спросом. Такие программы часто имитируют какого-либо игрока или персонажа, помогающего пройти этап. Распространены в приложениях в «Вконтакте».

Зная разновидности, приступим к различным способам их реализации.

Как сделать бота для группы в «Вконтакте». 2 основных метода.

Реализация путем непосредственного использования ресурсов самого «ВК».

Отметим сразу, что данный способ подходит для тех руководителей групп и других паблик-формирований, которые имеют профилированные знания в области программирования на различных языках, или имеют в своем штате такого сотрудника. Еще один вариант – если есть желание самостоятельно научиться делать ботов для групп.

Чтобы приступить к процессу, необходимо перейти во вкладку «Управление».


Скролим вниз и видим подраздел «Сообщества».

Так же можно сразу нажать одноименную вкладку в меню, находящемся слева.

Нажимаем «Чат-боты».

Оказываемся на веб-странице, на которой происходит описание чат-ботов, их преимуществ, цели создания.

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

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

    примеры реализации чат-ботов (источники доступны на популярном веб-ресурсе «GitHub»):

    разработка чат-бота с применением «Node JS» с возможностью добавления новых команд.

Во всех вышеперечисленных материалах все основные моменты очень хорошо и понятно описаны (особенно в технической документации), что делает создание бота для группы в «ВК» увлекательным и интересным.

Использование ботов-сервисов для создания

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

Рассмотрим несколько сервисов. Первый и очень популярный веб-ресурс – «Robochat».

Нажимаем «Создать бота» и переходим на форму регистрации/авторизации, выбираем наиболее удобный способ.


Следующий шаг – кликнуть мышкой по кнопке «Подключить бота» и выбрать интересующее нас сообщество.

Выбрав и разрешив боту необходимые доступы, попадаем в раздел «Настройки» и их производим. А именно:

  • тип сообщения: приветствие, действие после подписки/отписки, письмо на необработанное сообщение от интернет-пользователя;
  • ответы на загрузку какого-либо медиафайла: картинка, стикер, видео, товар, документ, аудиофайл;
  • и т. д.

Чтобы произвести редактирование, наводим на необходимый пункт и жмем на появившийся «карандашик».

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

Поняв принцип, рассмотрим основные возможности сервиса:

  • «Настройки» были описаны ранее;
  • «Сценарий» дает возможность создания имитации прямого диалога с пользователем путем прописывания тех или иных вопросов, разных ответов и связей между ними. Чем больше продумана данная структура, тем лучше.
  • «Рассылка» - отправка сообщений всем пользователям в «Вконтакте», которые когда-либо осуществляли обращение через бота в сообщество;
  • «Статистика». Название говорит само за себя. Основные данные для анализа: количество диалогов, сообщений, подписок/отписок, пол/возраст, город и статистика ответов на неизвестные команды. Последний пункт позволяет дорабатывать структуру и задавать более точные сценарии после непосредственного анализа.

    «Управление ботом» подразумевает следующие моменты, отображенные на скриншоте;

    «Написать боту» отдельно выделенная функция, дающая возможность произвести проверку и при необходимости отладку прописанного сценария.

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

Сервис «Робочат» является условно бесплатным. Тарифная сетка формируется на основе количества подписчиков и числа подключенных сообществ:

  • «Бесплатный» тариф относится к паблик-формированиям, в котором менее 50 000 участников;
  • «Начальный» - 1 сообщество, в котором до 100 000 людей. Плата в месяц – 399 рублей;
  • «Стандарт» подразумевает возможности подключения одного паблика, в котором до 500 000 подписчиков. Месячная стоимость – 599 руб.;
  • Премиум – 1 999 рублей за любое сообщество с неограниченным числом подписанных пользователей.

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

Рассмотрим еще один аналогичный сервис с оригинальным названием – «BotVK».

Нажав «Создать бота прямо сейчас», сразу попадаем на окно с запросами доступа. При этом желательно уже зайти в свою учетную запись в соцсети «Вконтакте».

Заходим в раздел «Боты», производим подключение необходимого паблика.

Основная разница в ценообразовании:

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

Малая стоимость платы за месяц, видимо, и является тем преимуществом, которое помогло «БотВК» стать конкурентоспособным и быть наравне с «Робочатом».

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

Заключение

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

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

При необходимости, вы можете обратиться к интернет-маркетологам, которые имеют опыт и навыки в создании сценариев для различных бизнес-процессов: продажа товара, подписка человека на сообщество, сложный диалог с закрытием на необходимое целевое действие и т. д.

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

Новый функционал для ботов ВК — кнопки быстрых ответов или же keyboard.

ВАЖНО! Более свежая версия статьи

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

Создание и настройка сообщества

После создания сообщества в ВК проследуйте по этому пути:
«Управление сообществом» →«Сообщения» и включите диалоги сообщества. Теперь в подменю «Настройки для бота» включите «Возможности ботов» и кнопку «Начать».

Писать будем используя Сallback api(отправляет каждое действие в сообществе по отдельности на сервер). Поэтому его тоже следует настроить. Переходим в
«Управление сообществом» →»Работа с API». Для работы бота нужно зарегистрировать ключ доступа. Нажимаете «Создать ключ» и выбираете необходимые права доступа, для этого бота нужны только права на сообщения. Подтверждаем номер телефона и сохраняем куда нибудь ключ доступа. Теперь переходим во вкладку Callback API. Ставим свое название сервера и выбираем последнюю версию API(на данный момент она 5.80, и именно с ней ниже представленный бот будет работать 100%) . Во вкладке «Типы запросов» выбираем только входящие сообщения.

Настройка сервера

Теперь вам понадобится сервер для хостинга своего бота. Вы можете использовать бесплатные хостинги, например 000webhost.

Если вы будете использовать дешевые/бесплатные хостинги, то вероятнее всего на них будет отключен cURL(вы не сможете отправлять ботом медиа файлы, только текст), и его нельзя включить. У 000webhost все с этим нормально, можете использовать. Если у вас свой сервер или хороший купленный, то вам надо подключить cURL для полноценной работы бота из нашего примера.

Как работает Callback API и keyboard

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

{"type":"message_new","object":{"date":1529668584,"from_id":89846036,"id":1522,"out":1,"peer_id":89846036,"text":"Золотая рыбка","conversation_message_id":305,"fwd_messages":,"important":false,"random_id":0,"attachments":,"payload":"{\"animals\":\"Goldfish\"}","is_hidden":false},"group_id":101461081}

Тут есть несколько интересных полей, которые можно обработать: id пользователя, текст сообщения(text), полезная нагрузка кнопки(payload).

Отправка сообщений пользователю происходит с помощью метода messages.send . Если вы отправляете клавиатуру, то после всех стандартных параметров вы добавляете параметр keyboard, который содержит json кнопок, вот как он выглядит:

Keyboard: { "one_time": false, "buttons": [ [{ "action": { "type": "text", "payload": "{\"button\": \"1\"}", "label": "Red" }, "color": "negative" }, { "action": { "type": "text", "payload": "{\"button\": \"2\"}", "label": "Green" }, "color": "positive" }]

Работа с библиотекой

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

$vk = new vk_api(vk_key, version_api) — инициализация бота. Параметры: ключ сообщества(vk_key), версия API(version_api).

sendMessage(id, text) — функция отправки сообщений юзеру. Параметры: id пользователя(id), текст сообщения(text).

sendImage(id, patch) — функция отправки изображений. Параметры: id пользователя(id), путь до изображения(patch).

sendButton(id, text, buttons, one_time) — функция отправки сообщения с кнопками. Параметры: id пользователя(id), текст сообщения(не может быть пустым)(text), массив с кнопками(buttons), не обязательный параметр one_time, по дефолту false, если поставить true, то после нажатия на любую кнопку клавиатура скроется.

request(method, array_arguments) — универсальная функция работы с методами. Параметры: method — название метода из официального api, array_arguments — массив параметров.

sendOK() — Бета функция. Используется вместо echo «ok», помогает в тех случаях, когда время работы скрипта долгое, и бот начинает повторять сообщения по несколько раз.
ВАЖНО: есть использовать эту функцию, то у вас не будет отображаться вывод ошибок. Во время дебага заменяйте на echo «ok»

Полный код бота на PHP

Теперь перейдем собственно к коду, где прокомментирована почти каждая строка.
Данный код поддерживается на PHP 5.6+
В блоке CONFIG укажите свой ключ доступа сообщества, ключ для подтверждения сервера а так же выбранную вами версию API.

"Fish"], "А какие бывают?", "blue"]; //Код кнопки "Fish" const BTN_BACK = [["command" => "start"], "<< Назад", "red"]; // Код кнопки "<< Назад" const BTN_SALMON = [["animals" => "Pink_salmon"], "Горбуша", "white"]; // Код кнопки "Горбуша" const BTN_GOLDFISH = [["animals" => "Goldfish"], "Золотая рыбка", "blue"]; // Код кнопки "Золотая рыбка" const BTN_PLOTVA = [["animals" => "Plotva"], "Плотва", "green"]; // Код кнопки "Плотва" $vk = new vk_api(VK_KEY, VERSION); // создание экземпляра класса работы с api, принимает ключ и версию api $data = json_decode(file_get_contents("php://input")); //Получает и декодирует JSON пришедший из ВК if ($data->type == "confirmation") { //Если vk запрашивает ключ exit(ACCESS_KEY); //Завершаем скрипт отправкой ключа } $vk->sendOK(); //Говорим vk, что мы приняли callback if (isset($data->type) and $data->type == "message_new") { //Проверяем, если это сообщение от пользователя $id = $data->object->from_id; //Получаем id пользователя, который написал сообщение $message = $data->object->text; if (isset($data->object->peer_id)) $peer_id = $data->object->peer_id; // Получаем peer_id чата, откуда прилитело сообщение else $peer_id = $id; if (isset($data->object->payload)){ //получаем payload $payload = json_decode($data->object->payload, True); } else { $payload = null; } if (isset($payload["command"]) or mb_strtolower($message) == "начать") { //Если нажата кнопка начать или << назад $vk->sendButton($peer_id, "Хочешь посмотреть на рыбок?", []); //Отправляем кнопку пользователю } else { if ($payload != null) { // если payload существует switch ($payload["animals"]) { //Смотрим что в payload кнопках case "Fish": //Если это Fish $vk->sendButton($peer_id, "Вот такие, выбирай", [ //Отправляем кнопки пользователю , ]); break; case "Pink_salmon": //Если это Горбуша $vk->sendMessage($peer_id, "Держи свою горбушу!"); //отправляем сообщение $vk->sendImage($peer_id, "img/pink_salmon.jpg"); //отправляем картинку break; case "Goldfish": //Если это Золотая рыбка $vk->sendMessage($peer_id, "Она исполнит твои желания..."); $vk->sendImage($peer_id, "img/goldfish.jpg"); break; case "Plotva": //Если это Плотва $vk->sendMessage($peer_id, "Ой, похоже картинку перепутали)"); $vk->sendImage($peer_id, "img/plotva.jpg"); break; default: break; } } } } ?>

Теперь вы знаете как работает код, и можете подстроить его под себя.

Стартуем!

Заливайте свой скрипт и библиотеку на сервер. Теперь заходим в настройках во вкладку Callback API, вписываем в поле адреса путь до своего скрипта и жмем подтвердить. Если вы все сделали правильно, то рядом с адресом появится зеленая галочка.

FAQ:

Вопрос: Вообще ничего не работает!
Ответ: Значит где-то накосячили. Перечитайте еще раз внимательно статью, и проверьте, все ли вы сделали. Любой шаг влево может привести к ошибке…

Вопрос: У меня все работает, но не отправляются картинки.
Ответ: Проверьте, добавили ли вы папку img с изобажениями. Так же, возможно вы используете сервер, где не поддерживается cURL.

Вопрос: Я изменил версию на 5.78 или любую другую. У меня ничего не работает.
Ответ: Используйте другие версии api кроме 5.80 на свой страх и риск. Например на версии 5.78 от ВК приходят другие названия переменных(например вместо object->text идет object->body), поэтому скрипт крашится. Все изменения api ищите