Как создать чат-бота в ВК самостоятельно: инструкция по настройке
Каждый день 47 миллионов пользователей заходят в социальную сеть ВКонтакте. Большинство этих людей — молодые и платежеспособные россияне.Пускай стену уже не вернут, но VK остается популярной площадкой для русскоязычной аудитории. Если вы работаете с ней, этот канал — приоритетный. Сегодня поговорим, как автоматизировать общение с клиентами во ВКонтакте через чат-боты. Обсудим:
- Какие задачи решают чат-боты;
- Каким бизнесам в ВК не обойтись без бота;
- Почему написать чат-бот во ВКонтакте самостоятельно — неэффективно и трудоемко;
- Какие примеры крутых чат-ботов есть на рынке;
- На что обратить внимание, запуская бот во ВКонтакте.
Для чего нужен чат-бот во ВКонтакте
Цель внедрения чат-бота вне зависимости от площадки одна — автоматизация рутинных процессов.
Бот оптимизирует работу менеджеров, а также берет на себя их обязанности, когда те спят или отдыхают на праздниках. Перечислим главные задачи:
- Техподдержка — бот отправит ссылки на нужные инструкции и подскажет, как ориентироваться в базе знаний. В этом случае задача по онбордингу встретится с техподдержкой.
- Консультация — бот расскажет клиентам, как найти нужный товар, скинет информацию по доставке и оплате, сообщит о скидках и акциях.
- Продажи — в чат-ботах можно прописать воронку продаж, которая выявит потребности клиента, чтобы в финале диалога предложить наиболее подходящий продукт.
Читайте также:
А СберКот дарит стикеры за выполнение заданий, превращая продажи в формат игры с наградой:В целом, в ВК чат-бот нужен тем, кто ведет активные кампании, приводящие большой поток клиентов. Это позволит принимать их заявки в автоматическом режиме. Также бот неплохо справляется с задачей развлекать пользователей и демонстрировать им некоторые возможности продукта. Можно настраивать кнопочный интерфейс, рассылки, вставлять ссылки, прикреплять файлы, создавать карусели, принимать оплату через VK Pay и так далее, возможностей предостаточно.
Автоворонки в мессенджерах. Может ли чат-бот продавать без участия специалиста?
Но есть один нюанс.Как настроить чат-бот ВКонтакте
У ВКонтакте есть инструментарий, с которым вы можете написать чат-бот самостоятельно. Чтобы сделать бота, вам нужны:
- Сервер, который реагирует на события в сообщениях группы.
- Скрипт и сценарий бота.
Вам понадобятся админские права, с которыми вы сможете работать в разделе «Управление сообществом». Тут потребуются навыки программирования и специальные знания. Бота реализуют через 3 варианта скриптового языка:
{"ts":"4","updates":[{"type":"wall_post_new","object":{"id":28,"from_id":-123456,"owner_id":-123456,"date":1519631591,"marked_as_ads":0,"post_type":"post","text":"Post text","can_edit":1,"created_by":564321,"can_delete":1,"comments":{"count":0}},"group_id":123456}]}
Получается, что бота можно собрать бесплатно, но это долго, трудоемко и требует навыков программирования. Соответственно, нужно найти человека, который это все настроит, либо научится, а это опять время и деньги.
Поэтому куда легче и дешевле создать бота с помощью сторонних сервисов. Например, в МультиЧате Callibri чат-бота собирают с помощью визуального конструктора, в котором разберется любой сотрудник.
Визуальный конструктор чат-ботов Callibri
Создавайте ветки диалога, вставляйте ссылки, прописывайте момент перевода на оператора или запрос данных. Вы можете копировать ветки или готовых ботов из других проектов. В соседней вкладке вы найдете настройки чат-бота:Вкладка с настройками чат-бота в Callibri
- Дайте имя чат-боту;
- Укажите дни и время работы бота;
- Составьте сервисное сообщение на случай, если операторов нет на месте. Тут же можно включить форму запроса контактов клиента;
- Укажите, в каком канале будет работать чат-бот.
Советы по работе с чат-ботом во ВКонтакте
Чтобы не получить бан, изучите правила работы чат-ботов во ВКонтакте. К примеру:- Соцсеть запрещает использовать подписку на сообщество, лайки, репосты как условие для доступа к боту.
- Вы получите блокировку, если бот не выполняет заявленные функции в течение 24 часов. Исключение — техническая неисправность и обозначенный срок, в которую задача клиента будет выполнена.
- Нельзя вводить пользователей в заблуждение, команды должны соответствовать ответам бота.
Помимо этого, рекомендуем почитать другие материалы, которые помогут избежать проблем в работе с инструментом.
- Четко определите цель чат-бота — если вы не понимаете, зачем в сообществе ВК есть чат-бот, то он не принесет пользы ни вам, ни клиенту. Перед разработкой определите, что он дает вам и что дает клиентам.
- Создайте качественное приветственное сообщение — расскажите в первом сообщении, что ваш бот умеет и как с ним общаться.
- Будьте активны в диалоге — чтобы удержать человека в диалоге, постоянно задавайте вопросы и предлагайте свою помощь на каждом этапе общения.
- Дайте вызвать оператора — бот может встать в тупик, либо его функций недостаточно для решения вопросов клиента. Либо пользователь в целом негативно настроен к боту. Во всех этих моментах решение одно — кнопка «Позвать оператора».
- Используйте кнопки — кнопки с типовыми вариантами ответов помогают вести клиента по заданному сценарию. Это полезно для бота, который будет получать понятные команды. Также это выгодно человеку: ему не придется формулировать вопрос, ведь он уже видит готовый вариант.
- Определите tone-of-voice — подумайте над тем, каким языком будет разговаривать чат-бот. Отталкивайтесь от общей философии бренда и портрета ваших клиентов. Бот должен быть естественным продолжением вашей компании, ведь это официальный канал взаимодействия с клиентами.
- Завершайте каждый этап диалога вопросом — эта хитрость вовлекает в дальнейший диалог, давая понять клиенту, что польза чат-бота не исчерпана.
- Тестируйте сценарии до запуска чат-бота — проводите читки, чтобы выявить слабые этапы в сценарии ботов и тут же исправлять их. Лучше всего сценарий составлять на основе реальных диалогов с клиентами и интервью, из которых вы узнаете, что человек ищет в диалоге с брендом.
Заключение
Чат-бот во ВКонтакте полезен для обработки заявок от клиентов и демонстрации необычных возможностей ваших продуктов, а также развлечения людей.
Бренды активно используют ботов, отдавая им на аутсорс конкретные задачи. Однако собственная платформа для создания чат-ботов у ВКонтакте имеет высокий порог вхождения и не подойдет новичкам, даже при наличии всех справок.
Поэтому куда лучшим выходом кажется интеграция со сторонними сервисами, дающими простые и готовые решения, с которыми чат-бот заработает спустя считанные минуты. И это не говоря о дополнительных интеграциях и плюшках, как агрегатор мессенджеров, который есть в МультиЧате Callibri.
Если вы найдете оптимальное решение и настроите бота с учетом всех правил и советов, то менеджеры избавятся от рутины, а клиент получит быстрый и эффективный способ контактировать с брендом.
Как создать чат-бота в Unisender
Чат-бот — функционал, который позволяет выяснить потребности пользователей и помогает их удовлетворить. Автоматическое общение ведется с помощью заготовленного текста. Чат-бот позволяет взаимодействовать с клиентами в привычной для них среде и растить лояльную аудиторию.
Чтобы протестировать новый инструмент, выберите в личном кабинете раздел «Чат-боты».
Внутри раздела вы увидите следующие вкладки:
- Боты — здесь можно подключать ботов и просматривать по ним статистику.
- Чат-карты — здесь можно создавать сценарии взаимодействия с пользователями с помощью конструктора, просто перетаскивая нужные блоки.
- Мои чаты — все сообщения клиентов и ответы им при использовании блока «Перевод на оператора» в чат-карте.
- Рассылки — отправка сообщения или чат-карты по всем подписчикам.
- Аналитика — статистика по ботам: подписки; отписки; сообщения, отправленные пользователю; переходы по ссылкам. Можно посмотреть аналитику по определенным каналам или по конкретным ботам.
- Настройки — здесь можно указать автоматические ответы в начале диалога, при окончании диалога, при отсутствии операторов, при подключении к диалогу оператора. Также можно выбрать время, после истечения которого подписчик будет считаться неактивным, время переключения подписчика на бот и время ожидания подключения оператора.
Важно! При удалении чат-бота удаляется вся информация по нему, включая подписчиков и аналитику. Восстановлению данные не подлежат.
Как создать чат-бота
Кликните на вкладку «Боты» и нажмите на кнопку «Добавить бота».
В открывшемся окне введите название и описание нового бота, кликните на кнопку «Создать».
Можно добавить несколько ботов, для каждого канала свой, для этого необходимо создать отдельный бот и соответственно отдельный токен для него. Один и тот же токен для разных ботов использовать нельзя.
Сейчас можно создать бота в Telegram, VKontakte и у себя на сайте (Webchat). Для этого выберите нужный канал и нажмите на кнопку «Подключить».
Можно выбрать уже существующую чат-карту (1) либо создать новую (2) и привязать ее к боту.
Как создать бота во Вконтакте
Для создания бота у вас должна быть группа Вконтакте и права администратора в ней.
Чтобы подключить чат-бота, вам потребуется токен группы:
Шаг 1. Получите API-ключ
Зайдите в управление сообществом.
Выберите «Настройки – Работа с API – Создать ключ»:
В открывшемся окне проставьте все галочки и кликните на кнопку «Создать»:
Скопируйте полученный код, он понадобится на третьем шаге.
Шаг 2. Включите настройки для бота в управлении сообществом
Кликните на «Сообщения», включите их и нажмите «Сохранить»
Затем выберите «Настройки для бота» и тоже включите их. Также отметьте галочку «Добавить кнопку “Начать”», чтобы пользователи могли начать чат с сообществом по кнопке, и нажмите «Сохранить»:
Шаг 3. Создайте бота или откройте уже созданный
Шаг 4. Нажмите подключить в блоке VKontakte и вставьте API-ключ в поле для токена
Шаг 5. Проверьте работу чат-бота
Чтобы написать вашему чат-боту в VK, перейдите в группу и нажмите справа «Написать сообщение».
Примерно так выглядит окно группы для вашего подписчика. Кнопка доступна и для администратора группы.
Для связи с ботом напишите любое сообщение, и, если вы все настроили правильно, вам ответит ваш бот.
Как создать бота в Telegram
Для подключения чат-бота вам понадобится токен.
Чтобы получить токен, перейдите в Telegram в чат-бот @botfather или найдите его в поиске. Настройку описания, изменение картинки бота можно делать через команды в @botfather.
Введите /newbot. Придумайте и отправьте имя бота. Придумайте бот айди (должен заканчиваться на _bot). Пример ссылки на бот: https://t.me/123_bot
Из полученного в ответ сообщения скопируйте HTTP API в таком формате: 1830080026:AAFNJI93voi4A2c5VpFIJLTDNRrVfQK7fPA
Затем перейдите обратно в Unisender. Нажмите «Каналы» (в подменю первое сверху).
В блоке Telegram нажмите «Подключить» и вставьте скопированный элемент.
Теперь чат-бот доступен по ссылке из BotFather в Telegram. Токен доступен только для одного аккаунта.
Как создать бота на сайте (Webchat)
Webchat — это окно для коммуникации с клиентом на вашем сайте.
В нем, так же, как и в других каналах, могут использоваться чат-карты, перевод на оператора, вызов API и другие инструменты.
Чтобы добавить webchat, создайте новый бот или используйте существующий.
Задайте имя и описание бота, если создаете новый.
Нажмите на вкладке «Каналы» (верхнее меню) на «Webchat — Подключить».
Скопируйте полученный код.
Отправьте его разработчикам вашего сайта или установите на сайт самостоятельно (можно через Google Tag Manager) . Код нужно установить перед тегом </body>.
Для начала рекомендуем установить код на одну тестовую страницу сайта, чтобы можно было его проверить без пользователей.
Как настроить внешний вид чат-бота на сайте
После установки кода на сайте в этом же боте перейдите на вкладку настроек веб-чата:
Откроется окно с настройками, в котором можно:
- Добавить заголовок и подзаголовок.
- Загрузить аватарку и картинку для фона.
- Настроить фон и цвет текста исходящих сообщений.
- Выбрать фон и цвет текста сообщений бота.
Можно открыть в соседней вкладке тестовую страницу, где установлен код чата, и смотреть, как меняется чат.
Важно! Один токен может быть привязан только к одному боту. Вы можете создать несколько токенов, тем самым создав несколько ботов.
Как создать чат-карту
После того как вы подключили токен бота, можно приступать к созданию чат-карты.
Чат-карта — это определенный путь, сценарий взаимодействия с подписчиком. Чат-карта может включать отправку сообщений и меню, разветвление логики после ответов подписчика, задержку в отправке, перевод на оператора и другие логические действия и условия.
Одна чат-карта может использоваться для нескольких каналов коммуникации.
Пример логики простой чат-карты:
Чтобы создать чат-карту, перейдите в раздел «Чат-карты — Создать чат-карту».
Введите название, придумайте описание и нажмите «Сохранить».
Откроется окно редактирования чат-карты с палитрой блоков и рабочей областью, где будет размещаться чат-карта.
Чтобы увеличить рабочую область, вы можете свернуть меню, кликнув на стрелочку (3).
Блоки можно «Редактировать», «Дублировать» и «Удалить».
После создания блока он сразу появляется на рабочей области. Чтобы соединить блоки между собой, нажмите на знак плюса на первом блоке, а затем на красную круглую метку на блоке, с которым нужно создать связь.
Блоки можно выбрать, кликнув правой кнопкой мыши по рабочей области.
Палитра блоков состоит из 7 блоков:
Рассмотрим каждый из этих блоков более подробно.
Отправка сообщения
Блок отправляет сообщение пользователю. Если сделать несколько таких блоков подряд, они будут отправляться друг за другом без остановки.
Бот после такого блока не ждёт ответа или каких-либо других действий от клиента. Подходит для самого первого сообщения, для информирования и рассылок.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Сообщение — сообщение, которое увидит ваш подписчик. Тут вы можете прикрепить картинку (в формате jpeg), смайлик или координаты.
- Следующий блок — какой блок будет следовать после этого.
Задержка
Этот блок используется, когда перед следующим блоком нужно подождать какое-то время. Например, вы хотите отправить несколько сообщений при подписке.
1 сообщение = 1 день. Для этого вам нужно использовать блок «Задержка» между сообщениями.
Во время задержки пользователь бота не сможет с ним взаимодействовать: писать или выбирать пункты меню. Поэтому длительную задержку делать не рекомендуется. При этом массовые рассылки в период задержки будут приходить пользователю, так как задержка касается только текущей чат-карты.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Время задержки (секунды) — сколько времени нужно ждать для перехода в следующий блок. 1 час = 3600 секунд. 1 день = 86400 секунд.
Пример использования блока «Задержка» между двумя блоками:
Отправка меню
Используйте этот блок, чтобы задать вопрос пользователю с указанием вариантов ответа. Пользователь сможет выбрать, что именно его интересует, с помощью кнопок. Именно благодаря этому блоку пользователи разделяются по разным веткам сценария.
После отправки меню бот ждет от пользователя реакции (клика на конкретную кнопку). Только после этого клиент сможет двигаться дальше.
Чтобы прикрепить один блок к другому, нажмите на нужный блок и тот, к которому его нужно прикрепить.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Сообщение — сообщение, которое увидит ваш подписчик. Тут вы можете прикрепить картинку (в формате jpeg), смайлик или координаты.
- Добавить пункт меню — добавьте ответы на ваш вопрос. У каждого пункта есть 2 параметра — текст пункта и следующий блок при выборе этого пункта меню. В примере ниже показано 2 пункта меню, из которых 1 ведет на Сообщение 1, а второй — на Конец диалога:
Шаблонизируемое меню
Этот блок используется для показа меню, которое формируется с помощью API-запроса полностью на вашей стороне или на стороне стороннего сервиса.
Мы не знаем, сколько пунктов будет в этом меню и какие данные в нем будут содержаться. Меню формируется сразу для конкретного пользователя в конкретный момент чат-карты на основании данных из ответа API-запроса.
Данный блок предназначен для разработчиков.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Сообщение — что мы просим пользователя выбрать в этом меню, аналогично обычному меню. Например, «Выберите ближайший магазин».
- Путь в last_api_response до массива (необязательное поле) — нужно указать путь до списка с вариантами (last_api_response). В путь можно вообще ничего не указывать, если last_api_response с нулевой вложенностью, то есть просто [{«label»: «кнопка1», «value»: «1»}, {«label»: «кнопка2», «value»: «2»}].
- Ключ, по которому достается текст кнопки — как подписана переменная, в которой у нас будет название кнопки. В ответе [{«label»: «кнопка1», «value»: «1»}, {«label»: «кнопка2», «value»: «2»}] название кнопки будет подписано как label.
- Ключ, по которому достается значение — как подписана переменная, в которой будет храниться значение выбора подписчика. В ответе [{«label»: «кнопка1», «value»: «1»}, {«label»: «кнопка2», «value»: «2»}] название значения будет подписано как value.
- Поле подписчика для записи — в какое поле нам записывать значение, сам выбор клиента в меню.
То есть, при ответе API [{«label»: «кнопка1», «value»: «1»}, {«label»: «кнопка2», «value»: «2»}] подписчик увидит меню с кнопками кнопка1 и кнопка2 и после нажатия в выбранное поле подписчика будет записано значение 1 или 2.
Логика работы блока. Блок «Шаблонизируемое меню» применяется после блока «API-запрос» и использует ответ на запрос для формирования меню.
То есть, схема работы данного блока выглядит примерно так:
Примеры использования блока:
- показать индивидуальные предложения и акции для конкретного клиента;
- вывести список ближайших адресов розничной сети в виде меню.
Перевод на оператора
Этот блок используется, когда нужно подключить человека для помощи клиенту.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Настройки операторских сессий — какие сообщения увидит пользователь при подключении/отключении оператора, когда нет операторов на связи.
- Операторы — вы можете выбрать на кого из операторов будет направлено сообщение подписчика при подключении оператора.
После использования этого блока сообщения подписчика будут отображаться на вкладке «Мои чаты».
Важно! Переход на следующий блок чат-карты осуществляется, когда оператор закрывает чат с клиентом в «Мои чаты». Обязательно закрывайте чаты, чтобы подписчики имели возможность вернуться в главное меню или продолжить использовать бота.
Случайное распределение
Этот блок используется, когда нужно разделить пользователей бота на разные ветки случайным образом.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- Выходы — какие блоки должны быть следующими.
- Количество выходов = количество случайных вариантов перехода.То есть, если вы делаете 2 выхода, то пользователь бота с вероятностью 50% попадет в 1 из них. Если вы делаете 4 выхода, то с вероятностью 25%. Вы можете сделать любое число выходов. Если вы на 2 из 6 выходов зададите один и тот же блок, то у пользователя в 2 раза повысится вероятность попасть именно на него.
Примеры использования блока:
- отправлять разные приветственные сообщения для главного меню, чтобы имитировать живое общение;
- протестировать несколько вариантов сообщений, чтобы понять, какое из них принесет больше переходов на сайт (для ссылок рекомендуем использовать utm-метки).
Запрос API
Этот блок используется, когда нужно сделать запрос во внешнюю базу, в другой сервис или получить откуда-то данные о клиенте, заказах, меню и прочем. Запрос делается по примеру webhook. Все данные из полей и другую информацию вы храните у себя.
Блок позволяет интегрироваться с любым сервисом и предназначен для разработчиков.
Элементы блока:
- Название — видите только вы, назовите так, чтобы было понятно.
- Описание — видите только вы, детализация названия блока, заполнять необязательно.
- URL запроса — какие блоки должны быть следующими.
- HTTP-метод — какой тип запроса нужно использовать: GET, POST, PUT, DELETE, OPTIONS, HEAD.
- Заголовки (requestHeaders) — тут чаще всего указываются данные для авторизации, API-ключи (или url запроса), тип разметки и другая техническая информация о запросе.
- Тело запроса — какие данные вы хотите передать. Вы можете отправлять в теле запроса переменные о клиенте, боте и прочее.
Чат-боты для ВК, создание бота Вконтакте
ВК бот – лучший способ привлечь русскоязычную целевую аудиторию
Аудитория социальной сети «ВКонтакте» насчитывает более 400 миллионов пользователей. Это наиболее посещаемый сайт в Беларуси и находится в тройке самых посещаемых в России, Казахстане и Украине. Такая обширная аудитория дает возможность привлечь внимание к вашему продукту или сервису, раскрутить сайт и узнать вашу целевую аудиторию.
Почему вам нужен чат-бот для VK?
Заказав у нас разработку чат-бота для «ВКонтакте», вы открываете новые возможности продвижения своего бизнеса в интернете. Чат-бот для ВК поможет:
- Сделать бренд более узнаваемым среди многих интернет-пользователей России, Беларуси и других стран;
- Расширить свою целевую аудиторию, предоставив пользователям возможность легко взаимодействовать с компанией;
- Увеличить трафик на ваш веб-ресурс и повысить уровень продаж, напрямую предлагая целевой аудитории свои услуги/товары;
- Увеличить лояльность к бренду, предоставляя потенциальным клиентам информацию, развлечения и другой полезный функционал.
Чат-бот для ВК как удобный способ общения с клиентами
Зачем вам вкладываться в создание чат-бота для «ВКонтакте»? Почему потенциальный клиент будет пользоваться ботом в VK, а не мобильным приложением или сайтом? Чат робот предоставляет пользователю информацию и услуги в наиболее привычном для него формате – в форме диалога. Используя чат-бот для ВК, человек может:
- Получить нужную информацию, не покидая VK, а просто отправив боту запрос в виде сообщения;
- Найти определенные товары/услуги, не заходя в браузер и не тратя время на самостоятельный поиск;
- Развлечься благодаря конкурсам, опросникам и т.д., повысив свой уровень доверия к вашему бренду;
- Иметь доступ к определенным услугам компании, не устанавливая лишних приложений.
Разработка чат-ботов для ВК в Grizzly
Компания Grizzly собрала команду специалистов, которые готовы разработать чат-бот для ВК с любым функционалом. Мы разрабатываем:
- Развлекательные чат-боты для VK – роботы, которые предлагают кино и музыку, подсказывают рецепты по имеющимся ингредиентам, предлагают общение, высылают развлекательную информацию и тем самым повышают лояльность к вашему бренду.
- Информационные чат-боты для «ВКонтакте» – программы, которые по запросу пользователя высылают ему сообщения с данными о погоде в определенных городах, информацию о фильмах, уведомления о встречах или т.д.
- Бизнес чат-боты – роботы, способствующие продвижению вашего бизнеса в интернете: они предлагают ваши услуги и товары, высылают ссылки на новые поступления, делятся с вашими клиентами информацией по проектам, собирают и анализируют данные о вашей целевой аудитории.
- Чат-боты для заказа услуг/товаров – роботы, позволяющие через простой диалог найти и заказать билеты на транспорт, номер в гостинице или забронировать столик в ресторане.
- Уникальный робот для «ВКонтакте» – Grizzly готовы разработать робот с уникальным функционалом: мы сопровождаем проект от начала реализации до последующего запуска, также предлагая поддержку в маркетинговом плане.
Чат-боты с Grizzly – оригинальное решение для раскрутки бизнеса в интернете.
Чат бот для вк: виды, возможности бота, создание
Автоматизацию многих рутинных задач в социальной сети Вконтакте можно доверить программам. Подключенный чат бот для ВК может следить за обращениями посетителей, отвечать на несложные, типичные вопросы, подводить итоги конкурсов и так далее. Создание сложных чат-ботов для сайтов – задача для профессиональных разработчиков, но самый простой можно сделать за полчаса, имея лишь начальные знания в программировании.
Что такое бот в ВК
Бот Вконтакте должен общаться с подписчиками. Для этого он имеет свою личную страницу, как и обычный, живой пользователь. Получается, что чат-бот – это аккаунт, за которым нет настоящего человека, он управляется программой. Эта программа может быть обучена всему полезному, что от бота требуется.
Хорошие боты, сделанные квалифицированной командой, могут общаться настолько искусно, что вы ничего не заподозрите – останетесь в полной уверенности, что говорили с сотрудником техподдержки какой-нибудь фирмы, например. Но это всё-таки высший пилотаж; в большинстве случаев можно относительно легко обнаружить «нечеловеческую» природу собеседника.
Виды чат-ботов
Всех ботов принято разделять на четыре большие категории.
Секретари или автоответчики. Об этом как раз говорилось выше. Они отвечают на сообщения посетителей группы, информируют их об услугах или каких-то акциях, рассылают файлы, могут даже поддерживать несложную беседу.
Личные помощники. Эти программы ориентированы на взаимодействие со своими хозяевами. Могут напомнить о встрече, вызвать такси, вовремя заказать еду в офис и так далее.
Бизнес-боты. Чаще всего это более сложные разработки, которые могут самостоятельно принимать те или иные решения по бизнесу. Например, удобно приспособить такие аккаунты для автоматизированной игры на бирже.
Игровые. Такая программа управляет игровыми партнёрами. Возможности такого чат-бота могут быть какими угодно, в зависимости от игры. Геймер может не заметить, что играл не с живым человеком, а с сотней строчек кода.
Создание чат бота для беседы в ВК
Самый быстрый и простой способ завести себе виртуального помощника – скачать уже готовую разработку. Многие команды программистов предлагают свои творения всем желающим, как бесплатно, так и за деньги. Например, такие:
BroBot: https://brobot.ru/.
Bot-VK: https://bot-vk.ru/.
VK-robot: https://vk-robot.ru/.
Ещё можно заказать разработку бота конкретно под ваши задачи. Специалисты проанализируют ваш бизнес и спроектируют программную систему именно под ваши задачи. Таких предложений тоже много, вот например:
Win-Win Studio: http://hello.win-win-studio.ru/.
BotCreator: https://botcreators.ru/.
MetaRex: https://pro.metarex.ru/.
Способ добавления бота в беседу ВК сильно зависит от его функционала, и универсальных рецептов здесь нет. Но всё же чаще всего для программы создаётся отдельный аккаунт, от имени которого она и будет взаимодействовать с собеседниками. Хорошо спроектированные системы могут создать себе страницу сами.
А если вы чувствуете в себе силы и обладаете хотя бы начальными навыками программирования, то можно написать такой сервис самостоятельно. Вряд ли он получится сложным и функциональным, но это неплохой способ сделать именно то, что вам требуется, а заодно поднять свои навыки программиста.
Индивидуальный проект на тему «Создание чат-бота в мессенджере ВКонтакте »
Муниципальное общеобразовательное учреждение
«Средняя общеобразовательная школа № 6»
142100, Московская область, Г.о. Подольск, ул. Февральская, дом 30
«Создание чат-бота в мессенджере ВКонтакте »
Автор работы:
Бардацкий Владислав Игоревич 9 «В» класс
МОУ СОШ №6 Г.о. Подольск
Научный руководитель:
Гусаков Алексей Леонидович, учитель высшей категории,
учитель информатики, МОУ СОШ №6 Г.о. Подольск
(8-916-843-31-22)
Городской округ Подольск
2021 год
ОГЛАВЛЕНИЕ. 1
ВВЕДЕНИЕ. 3
1. Теоретическая часть . Internet- мессенджеры.. 6
1.1 Обзор часто используемых мессенджеров. 6
1.2 Возможности мессенджера «VK». 7
1.3 Чат-бот – что это?. 8
2. Практическая часть. Создание чат-бота в мессенджере «вконтакте». 11
2.1 Создание чат-бота и его подключение. 11
2.2 Создание интерактивных команд для пользователей чат-бота. 14
2.3 Организация функции «вопрос-ответ». 16
2.4 Особенности архитектуры приложения. 17
ЗАКЛЮЧЕНИЕ. 21
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.. 23
ПРИЛОЖЕНИЕ А.. Ошибка! Закладка не определена.
ПРИЛОЖЕНИЕ Б. Ошибка! Закладка не определена.
За последние несколько лет популярность мессенджеров для смартфонов и PC использующих сеть Интернет выросла: ещё недавно пользователям вполне хватало обычных смс, переписки офлайн или используя web-интерфейс через браузер, а сейчас многие не представляют свою жизнь без любимого приложения. В чём же секрет такой популярности и чего нам ждать от мессенджеров в будущем?
Когда появились первые современные мессенджеры (например, WhatsApp, KakaoTalk или Viber), почти каждый обладатель смартфона скачал себе хотя бы один из них или сразу все. Как минимум, чтобы понять, почему все вокруг в восторге. У кого-то приложения так и остаются “пылиться” ненужными, но большинство всё-таки пользуются ими довольно активно.
В чём же секрет такой популярности? Во-первых, тут есть очень любопытный парадокс: мы хотим общаться, но мы и не хотим общаться. Телефонные разговоры отнимают много времени и не всегда бывают уместны, а вот мессенджеры – очень удобная штука. Голосом общаться совсем не обязательно. Ещё одно удобство мессенджеров – не требуется как-то искать своих знакомых и добавлять их в контактный лист, чтобы начать общение. Все мессенджеры сразу после установки показывают, у кого из контактов установлено приложение, и можно сразу же начинать общение.
Другой интересный момент – это стикеры. Диалоги сейчас имеют тенденцию к упрощению: зачем писать длинные сложные слова, когда и так понятно? Смайлики, затем эволюционировавшие в эмодзи, ещё больше упростили процесс общения – слова теперь и вовсе не нужны :). Стикеры же – это, можно сказать, следующая ступень эволюции. Богатейший выбор картинок на все вкусы: тут и герои мультфильмов, и учёные, и интернет-мемы. Вместо тысячи слов, как говорится.
Функция групповых чатов позволяет переписываться с несколькими собеседниками одновременно – удобно для общения между однокурсниками или коллегами, да и просто для большой компании друзей.
Если с групповыми чатами большинство пользователей уже были знакомы и ранее, то феномен подписок проявил себя только в мессенджерах – теперь у каждого есть возможность следить за чужой групповой перепиской (с разрешения собеседников, разумеется). Можно, например, наблюдать, как переписываются знаменитости.
Может сложиться впечатление, что любой мессенджер – это средство исключительно для развлечений, но рабочие мессенджеры тоже существуют, например, Slack. Этот способ коммуникации между коллегами и организации собственного рабочего пространства пока не так сильно распространён, но попробовать можно. По сути он представляет собой (помимо непосредственно диалогов) замену всем уведомлениям, которые обычно сыплются на почту.
Конечно же, мессенджеры не могли не стать идеальным пространством для стартапов и новых прогрессивных идей. Уже есть услуги заказа такси, еды и чего угодно через мессенджер – достаточно, например, написать контакту “Такси” сообщение с адресом, куда должна подъехать машина. Никакого общения с операторами, никакого блуждания по сайтам для онлайн-заказа – всё необходимое теперь в списке контактов мессенджера.
Чат-боты в мессенджерах так же заняли своё место. Они способны отвечать за вас на сообщения, продавать ваш товар, анализировать рынок, быть вашими компаньонами и просто собеседниками.
Таким образом, исследования организации работы ботов, а также исследования функций интернет-мессенджеров является очень актуальной в нашем современном, информационном обществе. Поэтому свой проект я назвал «Создание чат-бота в мессенджере ВКонтакте»
Цель работы: исследовать возможности по разработке и применению функционала чат-бота в интернет-мессенджерах.
Для достижения данной цели были поставлены следующие задачи:
1. исследовать возможности и функциональное предназначение мессенджеров;
2. изучить теоретические аспекты по работе чат-ботов в сети Интернет;
3. исследовать практические инструменты и методы разработки функционала для чат-бота.
4. Создать собственного чат-бота со своим функционалом
В ходе решения поставленных задач нами были использованы следующие методы исследования: анализ, обобщение, описание, моделирование, программирование.
Предмет исследования: возможности интернет-мессенджеров.
Объект исследования: чат-боты.
Гипотеза: чат-бот выполняет функцию сервиса, справочника и собеседника в интернет-мессенджерах.
Идея создания сервиса обмена короткими текстовыми сообщениями (Short Message Service) возникла еще в 1984 году, а первое SMS-сообщение было отправлено в 1992 в сотовой сети Vodafone. Сегодня же для личной переписки люди пользуются различными мессенджерами, которые для связи используют интернет. Уже привычный метод SMS хоть и остается популярным способом связи, но свои позиции сдает достаточно быстро. За последние несколько лет появилось много приложений, позволяющих пользователям не просто переписываться между собой текстом, но и общаться по видеосвязи, обмениваться файлами, создавать групповые чаты и прочее. Правда, их теперь настолько много, что простые пользователи уже не успевают уследить за всеми новичками рынка, даже не говоря о всех популярных мессенджерах. В этом материале мы вспомним все средства обмена сообщениями, на которые стоит обратить свое внимание каждому современному человеку. Сервисы расположены в случайном порядке.
На данный момент в мире создано около сотни различных по своим возможностям мессенджеров для общения в сети Интернет. Приведём сравнительную характеристику трех из них, которые являются на данный момент самыми популярными среди пользователей (рисунок 1.1).
Рисунок 1.1 – Сравнение качественных элементов
Ко всем вышеперечисленным мессенджерам для своей исследовательской работы я добавил и выбрал ВКонтакте. Это популярный старый, но часто обновляющийся мессенджер-соцсеть, в котором реализовано большое количество функционала по взаимодействию пользователей друг с другом.
Некоторое время назад VK стал мессенджером. Был обновлён интерфейс, добавлено множество сервисов:
· Закрытый сервис VK ME, в котором добавлены дополнительные возможности в чатах: отправка сообщения без уведомления у других пользователей и автоматически исчезающее сообщение через определённое количество времени.
· Добавилась возможности смены заднего фона в чатах.
· Черновики: при выходе из чата набранное, но неотправленное сообщение сохраняется для возможности дальнейшего редактирования и отправки.
· У ботов появилась возможность отправки стикеров в сообщении.
· Теперь искать пользователя в ВК можно по номеру телефона.
· Обновления коснулись дизайна мессенджера для Android.
Но вот несколько относительно малоизвестных функций:
· foap.php – получение небольшого количества открытых данных определённого пользователя.
· Всё больше набирает популярность система переводов денежных средств VK Pay.
Словом, возможности VK обширны. В данной работе мы исследуем поподробнее возможности чат-бота при использовании мессенджера VK.
Роботы (боты, чат-боты) – это автоматизированные аккаунты, упрощающие решение многих задач при работе с мессенджером. Выражаясь простым языком, робот – это маленький помощник, готовый беспрекословно выполнять команды в VK, которые ему задал пользователь. Освоив данную функцию, можно создать множество ассистентов для решения различных задач, среди которых переводы текстов, комментарии, обучение, поиск информации, ответы на вопросы, игры, развлечения и многое другое. Например, бот может сутра предлагать подборку свежих новостей, а вечером рекомендовать просмотр интересного фильма, или выполнять роль соперника в шашках, шахматах, домино и других многопользовательских играх.
Для реализации подобных функций боты используют те же интерфейсы, что и реальные пользователи. При этом взаимодействие с ними в VK осуществляется посредством стандартных чатов, поэтому установка дополнительного программного обеспечения не требуется.
Чат-боты в VK делятся на 2 основных вида:
· User, т.е. страница пользователя VK.
· Bot, т.е. группа в VK.
Синтаксис для общения с роботами.
Начать работу с конкретным чат-ботом достаточно просто. Для этого необходимо:
1. Найти пользователя/группу VK бота (в зависимости от его вида).
2. Если введённое имя существует – система выдаст результат.
3. Начать переписку.
Чаще всего такую программу создают для выполнения монотонных и повторяющихся операций, чередующих друг друга с высокой скоростью. Как правило, такие действия попросту недоступны обычному человеку (надоедает, скучно, долго и т.д.). В таких ситуациях на помощь приходят роботы. Кроме того, работая по заданному алгоритму, боты не сбиваются с курса, придерживаясь четко заложенных правил. От живого человека такого добиться, опять же, непросто.
Большую известность программы-роботы приобрели в Интернете. Здесь их существует великое множество.
1. Боты в компьютерных играх популярны и даже весьма полезны. Игроки во время прохождения миссий, в перестрелках и т.д. часто не сознают, что ведут бой практически с искусственным интеллектом. Здесь такие программы тщательно подстраиваются под действия геймеров, чтобы придать остроту игровому процессу. Если бот выполнен качественно, может «думать» и действовать, ориентируясь на ситуацию, происходящую на экране, играть становится гораздо интереснее.
2. Боты-покупатели. Условно названная категория программ, которая участвует в скупке лучших мест на концерты, спортивные и развлекательные мероприятия, авиарейсы и т.д. В общем, места, пользующиеся большой популярностью. Основные заказчики таких ботов — компании-посредники. Забронировав все лучшие места на официальных сайтах продаж, они предлагают их на своих веб-ресурсах по повышенным ценам.
3. Другая разновидность роботов — веб бот. Их основная задача — предсказывать и прогнозировать изменения фондового рынка. Разработанный в далеких 90-х года прошлого века, он популярен до сих пор.
В большей степени, этот тренд формируется сейчас за рубежом — существует огромное количество ботов для Slack или Telegram, решающих самые разные задачи – от поиска авиабилетов до управления небольшими командами разработчиков. И чтобы получить все это богатство, пользователям даже не нужно выходить из предпочитаемого мессенджера.
Что могут делать чат-боты?
· Замена рутины – позволяет выполнять определенные функции, не привлекая людей, а работа будет выполнена моментально и безупречно;
· Поиск и агрегация новостей, аналитики, данных (Data-Driven Collaboration), данные доступны в месте принятия решений — мессенджерах и всем участникам, которым они нужны;
· E-commerce – для спонтанных покупок без долгого поиска, mobile ecommerce + visual search + chatbots, для общения с клиентами;
· Первая линия работы с клиентами, помощники, консультанты, типовые вопросы, телефония;
· Just for Fun – просто для развлечения.
Есть огромное количество способов для создания чат-бота в ВКонтакте. Создавать бота можно с помощью различных языков программирования, с помощью различных библиотек, а можно и создать свою библиотеку, которая вручную отправляет запросы к API VK.
Я в своей работе решил создать чат-бота, в котором реализована система ведения аккаунтов, система предупреждений в различных беседах и финансовая система.
В роли чат-бота во ВКонтакте выступает сообщество – создадим его.
Рисунок 2.1 – создание сообщества бота
Указываем название нашего бота-сообщества, его тематику, тип группы – открытая, сайт и адрес.
Рисунок 2.2 – указание данных при создании
После этого переходим в настройки сообщества – Работа с API – Callback API – именно с помощью Callback API я создал своего бота.
Рисунок 2.3 – указание данных для Callback API
Указываем название нашего сервера, версию используемого API (у меня она последняя), адрес (доменное имя сервера, на котором располагается бот) и секретный ключ, опционально – загружаем сертификат SSL доменного имени, если имеется.
После того как мы создали и зарегистрировали нашего бота в VK нам нужно выбрать язык программирования и библиотеку для написания нашего бота. Я выбрал ЯП Python и библиотеку vkbottle.
При создании бота я буду использовать IDE PyCharm, на сервере для мелких правок – редактор текста Vim. Создаём проект в PyCharm.
Рисунок 2.4 – создание проекта PyCharm
Для настройки бота использую библиотеку dotenv. С помощью него можно считывать с файла в переменные окружения данные. Само содержимое файла выглядит так:
Рисунок 2.5 – содержимое файла .env
Перед тем как узнать о создании команд, давайте разберёмся, что такое команды для ботов и узнаем основные правила ведения общения с ботами.
Большинство ботов имеют стандартизированные команды для облегчения взаимодействия с конечным пользователем, однако каждый разработчик имеет возможность добавить уникальные команды. Все они имеют общую структуру следующего вида: /функция {аргумент}
Первый символ «/» необходим для инициализации команды и является обязательным. Предусмотрено, что общая длина команды не может быть длиннее, чем 32 символа. Как упоминалось ранее, каждый разработчик бота может использовать различные команды. Если Вы желаете получить их полный перечень, то введите команду «/помощь» или «/help» и ожидайте несколько секунд – бот ответит списком команд.
Для работы с роботом в ВКонтакте Вам следует использовать только задокументированные команды. Если Вы введете стороннюю фразу, то программа Вас попросту не поймет.
Используя библиотеку vkbottle, можно просто отслеживать приходящие сообщения и выполнять различные команды при получении определённой команды.
Рисунок 2.6 – реализация команды /помощь (/help)
Тут AccessForAllRule – правило-класс, метод в котором выполняется при получении запроса к выполнению одной из команд, описанных в списке text. lower – параметр, который приходящие команды приводит к нижнему регистру, если True. Например, если lower=True, то /HELP, /hElP и /help будут идентичны.
Среди систем бота присутствует система профилей с «предупреждениями» в беседах и финансовая система с возможностью купли-продажи автомобилей, заработок виртуальной валюты с помощью работ и опыт, ограничивающий возможность работать на работах и покупать автомобили и зарабатываемый с помощью обычного общения (учитываются только те сообщения, которые отправляются не ботам). Списки работ и автомобилей не зависят от кода и могут изменяться администратором бота с помощью команд в личной переписке с чат-ботом.
Рисунок 2.7 – реализация купли-продажи машины
В данной части работы мы рассмотрим функцию «Вопрос-ответ». Простыми словами – это организация общения бота с человеком. В моём чат-боте данная возможность создана не с помощью нейронных сетей как, например, если бы бот общался с человеком обучаясь, основываясь на некоторых знаниях, то есть ответы его были бы динамичны в зависимости от ситуации, а строго: бот получает конкретную команду – отвечает статично. Единственное, что изменяемое в ответе бота – данные пользователя, который написал боту сообщение. Такое присутствует, например, в команде «/профиль», отображающей данные пользователя.
Рисунок 2.8 – реализация команды «/профиль»
Архитектура всего приложения чат-бота является реализацией Blueprints. Это архитектура, при которой весь код логически разделяется на отдельные самостоятельные составляющие.
Корневой файл: регистрация «blueprints-чертежей»:
Рисунок 2.9 – регистрация blueprints
Весь функционал чат-бота же помещён в папке routes в корневом каталоге проекта:
Рисунок 2.10 – функционал в отдельных файлах
Чат-бот использует базу данных для хранения информации о пользователях. Взаимодействие бота с базой данных прописано в отдельных методах и файлах. В приложении описаны модели, то есть объекты: пользователь, работа, автомобиль, роль, беседа – это всё объекты. Модели реализуются с помощью классов – одного из основных составляющих объектно-ориентированного программирования.
Рисунок 2.11 – модель пользователя
Как можно заметить, в модели описана лишь суть объекта, что он из себя представляет в общем случае. Экземпляров модели же может быть бесконечное множество, и в каждом данные полей могут различаться – могут быть разные идентификаторы, разное количество денег, разные машины и т.п.
База данных представляет из себя набор таблиц, в каждой из которых есть поля – то есть свойства таблицы, единое представление данных в каждой строке таблицы – в каждом отдельном объекте. Между таблицами образована система связей. Есть таблица cars – машины, и таблица users – пользователи. Пользователь может владеть одной машиной – это может реализовываться с помощью внешних ключей. Таблица users содержит в себе поле car, являющееся внешним ключом (ForeignKey) к таблице cars. Фактически, данное поле содержит в себе ID определенной строки таблицы cars. Таким образом, данные таблицы связаны полем.
Мною также были использованы различные парадигмы программирования – объектно-ориентированное программирование, когда абсолютно всё представляет из себя некоторый объект со своими свойствами и полями, при этом все объекты одного типа подобны, а поля и свойства описываются в классах; декларативное функциональное программирование, когда мы описываем с помощью функций что надо сделать; императивное программирование, когда мы описываем как надо сделать.
Рисунок 2.12 – модель глобального пользователя
Каждая модель представляет из себя пример ООП.
Рисунок 2.13 – получение и обновление объекта пользователя
Общение с базой данных, получение, обновление, удаление данных из неё представляет из себя пример функционального программирования.
Рисунок 2.14 – метод класса-потока
Циклы, условия и переменные составляют императивное программирование.
Но в языке программирования Python есть замечательная возможность смешивать парадигмы – это одно из достижений многих существующих на данный момент популярных языков, поэтому в большинстве случаев используются смешанные парадигмы программирования – совмещение функционального с императивным, императивного с объектно-ориентированным, а можно совместить всё вместе – императивное, объектно-ориентированное и декларативное.
В данной работе мы проанализировали и исследовали основные функции и принципы работы чат-бота, с целью разработки модели общения, а также проиллюстрировали пример написания чат-бота.
Уникальные возможности Интернет такие, как скорость, оперативность, доступность коммуникации между пользователями – позволяют использовать сеть как средство общения и создавать интерактивные формы общения: чаты, форумы, телеконференции, электронную почту и другие. На смену реальным собеседникам приходят программы искусственного интеллекта, такие как: чаты, консультанты, помощники, развлекательные программы и другие. Но, в отличие от разговора людей, программа не обладает гибким умственным интеллектом. К сожалению, современные виртуальные собеседники лишь частично решают вопрос имитации разговора человека. Словарный запас большинства виртуальных собеседников ограничен, кроме этого, у них отсутствует эмоциональная окраска, тембр голоса и пр., поэтому большинство виртуальных собеседников запрограммированы на ведение несложной беседы. Обработка естественного языка человека, особенно разговорного стиля, является проблемой, касающейся искусственного интеллекта. В основу функционирования виртуальных собеседников положена база знаний. В простейшем случае она содержит наборы возможных вопросов пользователя и соответствующих ответов на них. Некоторые программы могут учиться, а именно: пополнять словарный запас, учитывать определенные особенности языка, стиля общения.
В первой главе работы мы рассмотрели теоретические основы работы с мессенджерами и чат-ботами. Исследовали возможные функции чат-бота. Во второй главе представлены исследования по части использования и программирования функций чат-бота мессенджера VK. Полный листинг программного кода можно посмотреть в репозитории на GitHub: https://github.com/jottyVlad/mdb-vk-bot.
Таким образом, данная исследовательская работа содержит ручное руководство по созданию чат-бота в мессенджере, а также задание ему первично-необходимой функциональности, используя средства языка Python3.
1. Бот (Интернет). Материал из Википедии [Электронный ресурс] // http://ru.wikipedia.org/wiki/Бот_(Интернет).
2. Проблемы виртуального общения [Электронный ресурс] / Леонтович О. А. // Полемика. — No 7. — 2000. http://www.irex.ru/press/pub/polemika/07/leo.
3. Михайлов В.А. Особенности развития информационно – коммуникативной среды современного общества / В. А. Михайлов, С. В. Михайлов // Сборник научных трудов «Актуальные проблемы теории коммуникации». СПб. — 2004.
4. Плешаков В. А. Киберсоциализация человека в информационном пространстве / В. А. Плешаков // Информация и образование: границы коммуникаций INFO’2009: Сборник научных трудов — Горно-Алтайск: РИОГАГУ, 2009.
5. Ушакова Г. Д. Особенности виртуального общения посредством чатов / Г. Д. Ушакова, Ю. В. Балабанова // Филологический журнал: межвузовский сборник научных статей. – 2004. – Вып. XII.
1 | { |
2 | "имя": "vk-chat-bot", |
3 | "версия": "5. 1.10.0.3 " |
21 | }, |
22 | «репозиторий»: { |
23 | «тип»: «гит», |
24 | «url»: «https://github.com/sudoio/vk-chat-bot.git» |
25 | }, |
26 | "ключевые слова": [ |
27 | «ВК», |
28 | «ВК», |
29 | «чат», |
30 | «бот», |
31 | «api» |
32 | ] |
33 | } |
Создание простого чат-бота в VK на Python 3
Создание основы для бота будет состоять из следующих шагов:
- Создание бота в VK
- Генерация ключа API
- Создание программы бота via LongPoolVK
Для кого эта статья?
Статья рассчитана на начинающих программистов.Метод программы очень прост, и любой, кто знает, как понимать синтаксис Python и немного знаком с PLO, сможет реализовать его для своих нужд. Но в принципе, даже не зная каких-либо принципов ООП, думаю, можно научиться добавлять простые функции или хотя бы в крайнем случае использовать готовые исходники с GitHub.
Что в этой статье?
Создание основы бота. После этого его можно программировать как угодно. Автоматизируйте какую-нибудь рутину или используйте в качестве источника.
Improved (немного усложненная версия бота). Я решил сначала представить простой процедурный код бота, а затем немного усложнить его, добавив функции, которые значительно улучшают работу бота.
‘)
Добавление функции передачи погоды. Давайте научим бота сообщать нам погоду.
Создание бота в ВК
Начнем с создания бота, а именно группы в ВК.
Для этого нужно перейти в «группы» → «создать сообщество».
Выберите любой тип сообщества и введите имя, тему группы.
На открывшейся странице настроек выберите «Работа с API»
Далее вам нужно создать ключ API.
Затем выберите параметры, которые вам нужны с доступом для вашего ключа API.
Скорее всего, вам придется подтвердить действие в ВК с помощью мобильного телефона. Затем скопируйте полученный ключ API куда-нибудь в файл. Он нам еще нужен.
Тогда вы нужно включить сообщения. Для этого зайдите в «сообщения» и включите их.
Запустим программную часть бота
Реализовать через запросы к ВК мы не будем, а точнее просто воспользуемся библиотекой VkLongPool, которая сделает это за нас.
Для этого требуется библиотека vk_api. Установите его через pip:
python -m pip install vk_api
Но лично я работаю с виртуальной средой Anaconda. С этим часто возникают проблемы при первой работе. Обычно проблема в том, что система не распознает команду python.И эта проблема решается добавлением его в PATH.
Перейдем к самому коду:
Импортируем необходимые модули:
import vk_api from vk_api.longpoll import VkLongPoll, VkEventType
Далее код:
def write_msg (user_id, message): vk. 'messages.send', {'user_id': user_id, 'message': message})
Функция write_msg получает идентификатор пользователя VC, которому она отправит сообщение, и само сообщение.
def write_msg (user_id, message): vk.method ('messages.send', {'user_id': user_id, 'message': message})
Войдите в систему как сообщество и настройте longpool:
В нем мы будем циклически проверять наличие event-ов. И мы можем получить тип события, используя event.type.
После получения сообщения от пользователя мы сможем отправить ему соответствующее письмо, используя уже созданную функцию write_msg.
Итак, мы создали очень простого бота в ВК с такой же простой реализацией.А логику работы бота можно программировать как угодно.
Список кодов в gh
Теперь приступим к более реальному программированию.
Давайте создадим класс VkBot в файле vk_bot.py, который будет выполнять роль бота.
класс VkBot: def __init __ (self, user_id): print ("!") Self._USER_ID = user_id self._USERNAME = self._get_user_name_from_vk_id (user_id) self._COMMANDS = ["", "", "", "" ]
И добавьте туда метод, с помощью которого можно получить имя пользователя через vk id.
def _get_user_name_from_vk_id (self, user_id): request = requests.get ("https://vk.com/id" + str (user_id)) bs = bs4.BeautifulSoup (request.text, "html.parser") user_name = self._clean_all_tag_from_str (bs.findAll ("title") [0]) return user_name.split () [0]
Это делается с помощью beatifulsoup4.
Установите, если это не так:
python -m pip install bs4В нем имеется достаточное количество статей, которые стоит изучить. С его помощью мы создадим еще несколько методов:
Измените параметр _get_weather на желаемый город, позже этот метод можно будет вызвать с указанием города, и по умолчанию будет заданное вами значение.
С помощью этих методов мы можем узнать время и погоду. Эти методы вырезаны из моего основного бот-проекта. Они должны быть организованы в отдельные пакеты и классы, применяя наследование. Но ради примера работы я решил уместить все это в один бот-класс, что конечно плохо.
Создадим основной метод new_message, который обработает сообщение пользователя и вернет ответ:
def new_message (self, message):
Теперь вернемся к запускаемому файлу:
Импортируем класс нашего бота :
из vk_bot import VkBot
Давайте изменим наш основной цикл:
print («Сервер запущен») для события в longpoll.listen (): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: print ('Новое сообщение:') print (f'Для меня by: {event.user_id} ', end =' ') bot = VkBot (event.user_id) write_msg (event.user_id, bot.new_message (event.text)) print ('Text:', event.text)
То есть теперь мы передадим полученное сообщение объекту бота, который вернет нам желаемый ответ.
Это усложнение программы необходимо, если вы хотите еще больше улучшить функциональность бота:
Создайте отдельные пакеты и классы для каждой функции _get_time и _get_weather.Организуйте наследование от общего класса. И каждую новую функцию определяйте в отдельных классах, лучшие, конечно же, тоже разделены на пакеты.
Добавьте словарь с ключом идентификатора пользователя и значением объекта бота. Таким образом, нет необходимости создавать объект-бот каждый раз в цикле. Кроме того, это обеспечит использование сразу нескольких пользователей в сложных структурах.
Таким образом, выбрав хорошую архитектуру кода, можно создать многофункционального бота.
Например, я научил своего бота проигрывать музыку на компьютере, открывать сайты сидя за телефоном.Присылайте рецепты на завтрак, обед, ужин.
Вы можете отредактировать бота под себя.
Бот из артикула
Основной проект бота (улучшенного) на GH
Буду рад вашим идеям. По всем вопросам пишите.
errbot-vk от ax3effect — Справка Github
Это бэкэнд errbot (http://errbot.io) для ВК (https://vk.com)
Позволяет создавать чат-ботов для ВКонтакте.
Гайд на русском языке: https: // github.com / Ax3Effect / errbot-vk / wiki / Юзер-гайд
Установка (с нуля)
См. Это: http://errbot.io/en/latest/user_guide/setup.html#installation
После команды «errbot» в каталоге создайте новую папку «errbot-vk».
В файл errbot config.py добавьте следующее:
НАЗАД = 'ВК'
BOT_EXTRA_BACKEND_DIR = '/ путь_к / errbot-vk /'
Также установите модуль vk_api:
Конфигурация бота
Для настройки бота можно использовать либо логин и пароль от учетной записи, либо с помощью ключа API сообщества (групповой / общедоступный).
Логин / пароль
Добавьте в файл config.py следующую строку (логин — адрес электронной почты или номер телефона):
BOT_IDENTITY = {'логин': 'ВАШ ВОЙТИ ЗДЕСЬ', 'пароль': 'ВАШ ПАРОЛЬ ЗДЕСЬ'}
Также добавьте это, если хотите использовать функции администратора:
BOT_ADMINS = ('ИДЕНТИФИКАТОР ВАШЕГО ПРОФИЛЯ ЗДЕСЬ',)
Ключ API сообщества или с использованием токена из учетной записи
Зайдите в настройки сообщества -> Использование API, выберите «Создать новый ключ», выберите «Только сообщения», скопируйте этот ключ.
Добавьте в файл config.py следующую строку:
BOT_IDENTITY = {'token': 'ВАШ КЛЮЧ ЗДЕСЬ'}
Вы также можете получить токен на https://vkhost.github.io и использовать его таким же образом.
Что поддерживается
- Получение сообщения
- Отправка сообщения
- Отправляющее приложение
- Получение информации о пользователе (не работает в чатах сообщества)
- Получение информации о чате (не работает в чатах сообщества)
Опора
Если вам нужна помощь, напишите мне: https: // vk.