Как создать и добавить бота в беседу в ВК — пошаговое руководство
Что такое бот для бесед в ВК? Это очень удобный инструмент коммуникации с подписчиками, программа, отвечающая на сообщения в соответствии с алгоритмом – пользователь решает написать сообщение в чат группы или паблика, а бот отвечает ему заранее прописанным скриптом.
Главная задача бота для беседы – оптимизация работы сообщества. С ним не нужно следить за полученными сообщениями и всё время быть онлайн. Он поможет подписчику – расскажет о ценах на товары, условиях доставки и оплаты, проинформирует о специальных предложениях, подсчитает стоимость. Он сэкономит время, которое SMM-специалист потратит на более значимые дела.
Виды ботов
Перед созданием чат-бота необходимо определиться с целями, которым он послужит.
- Примитивные. Отвечает на сообщения пользователя кодовым словом. Без кодового слова он сообщение не поймет, не ответит пользователю или сообщит о непонимании.
- Продвинутые. Он способен понимать все запросы подписчика и пытается правильно ответить. Не нужно подбирать слова, надеясь на понимание. Он понимает даже голосовые команды, всё время учится и совершенствуется. Продвинутого бота создать сложно – потребуется помощь программистов.
Другая классификация разделяет ботов в зависимости от их цели.
РАЗРАБОТКА ЧАТ-БОТА ДЛЯ VK НА VKBOTTLE| [ЧАСТЬ 1]
- Помощники. Они понимают только шаблоны и занимаются поиском информации для пользователя – от подбора дешевых авиабилетов и заказа еды до прогноза погоды.
- Искусственный интеллект. Именно о них мы говорили выше – продвинутый обучаемый бот для бесед в ВК сможет совершить сложные операции.
- Бизнес-боты. Помогают бизнес-страницам – например, рассылая письма, приглашая на мероприятия (вебинары, марафоны)
- Игровые. Сыграют с вами в простые игры.
Преимущества и недостатки чат-ботов
Рассмотрим главные плюсы и минусы внедрения чат-ботов.
- Быстрые ответы на вопросы потребителей 24/7
- Удобство интерфейса
- Быстрая реакция при небольшом потреблении трафика
- Упрощенный доступ к информации
- Не требуется установка или скачивание
- Высокая скорость вычислительных операций
- Возможность работы на любых платформах с мессенджерами
- Возможность работы в групповых чатах
- Многие пользователи хотят живого общения с людьми
- Лишены импровизации, и отвечают только на заложенные в программу вопросы
- Существенная вероятность сбоя программы
- Недоступность мощных ботов для рядового пользователя
- Несовершенство интерфейса
- Небольшое количество возможностей
- Малая известность в широких кругах
Как создать чат-бот ВКонтакте
Чтобы создать бота, отвечающего на вопросы пользователей, воспользуемся сервисом Robochat.io.
Сервис Robochat.io
Если в сообществе ВКонтакте меньше 50 тыс. человек, сервис позволит сделать чат-бота бесплатно. Сообществам, имеющим больше 50 тыс. подписчиков, придется приобрести платную подписку – самый дорогой тарифный план обойдется в 999 рублей и позволит создать бота с широкими возможностями.
БОТ ДЛЯ ГРУППЫ VK НА PYTHON ЗА 15 МИНУТ
Для настройки программы создания чат-бота следуйте инструкции ниже:
- Зайдите на сайт robochat.io и зарегистрируйтесь. Можно сделать это с помощью данных профиля или с помощью email-адреса.
- Теперь необходимо подключить сообщество и нажать «Подключить бота».
- Сервис выдаст в виде списка все паблики, руководителем которых вы являетесь. Необходимо выбрать нужное сообщество и кликнуть «Подключить».
- В открывшемся окне дайте сервису разрешение управлять сообществом.
- Вы получите сообщение с инструкцией. Прочитайте её перед началом работы.
Теперь приступим к созданию. Сервис предлагает большой выбор готовых шаблонов и настройку собственного. Все шаблоны подробно описаны, благодаря чему легко выбрать подходящего паблику чат-бота. Кнопка «Превью» показывает, как он работает. Происходит переадресация на паблик с таким ботом – напишите в сообщество, чтобы протестировать его.
Настройте бота: подберите реакцию, напишите текст. Подготовив чат-бота, подключите его с помощью кнопки «Подключить группу» и проверьте работу.
Сервис Чат-менджер
Ещё один удобный вариант – создание чат-бота через сервисы ВКонтакте.
- В приложении ВКонтакте нажмите кнопку «Меню».
- Внизу страницы выберите «Сервисы».
- В открывшемся списке сервисов необходимо выбрать виджет Каталог ботов.
- Откроется список – здесь нужно найти Чат-менеджер.
- На открывшейся страничке ознакомьтесь с описанием и нажимайте «Попробовать».
- Вы получите автоматическое сообщение – в диалоге можно задавать вопросы о работе бота. Нажмите на ссылку в сообщении.
- Откроется подробная инструкция – её нужно внимательно изучить. Она содержит информацию о настройке, полном списке команд и проч. Следуя правилам, создайте бота для бесед в ВК.
Источник: render.ru
Создание простого чат-бота в VK на Python 3
Статья рассчитана для начинающих программистов. Метод работы программы очень прост и любой, кто умеет разбираться в синтаксисе Питона и немного знающий ООП сможет его реализовать для своих нужд. Но в принципе даже не зная никаких принципов ООП, думаю можно научиться добавлять простые функции или хотя бы в крайнем случае использовать готовые исходники из GitHub.
Что есть в этой статье?
Создание основы бота. После этого его можно будет запрограммировать как-угодно. Автоматизировать какую-то рутину или использовать как собеседник.
Улучшенная (слегка усложненная версия бота). Я решил сначала представить простой процедурный код бота, а затем слегка усложнить его, добавив функции, значительно улучшающие работу бота.
Добавление функции передачи погоды. Научим бота говорить нам погоду.
Создание бота в ВК
Начнем мы с создания бота, а именно группу в ВК.
Для это нужно зайти в «группы» → «создать сообщество».
Выберите любой тип сообщества и введите название, тематику группы.
На открывшейся странице настроек, выберите «Работа с 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
Функция write_msg получает id пользователя ВК , которому оно отправит сообщение и собственно само сообщение .
def write_msg(user_id, message): vk.method(‘messages.send’, )
Авторизовавшись как сообщество и настроив longpool:
# API-ключ созданный ранее token = «6a9c267cd469388709a9e9acaddbe0aa81a0abbf12239b3e597a31729ffbddb9c88e80a443554c918b8f7» # Авторизуемся как сообщество vk = vk_api.VkApi(token=token) # Работа с сообщениями longpoll = VkLongPoll(vk) Войдем в основной цикл: # Основной цикл for event in longpoll.listen():
В нем мы циклически будем проверять на наличие event-ов. А получить тип event-а сможем с помощью event.type.
После этого получив сообщение от пользователя сможем отправить ему соответствующее письмо с помощью уже созданной функции write_msg.
Итак, мы создали очень простого бота в ВК с такой же простой реализацией. А логику бота можно программировать как душе угодно.
Теперь приступим к более реальному программированию
Создадим класс VkBot в файле vk_bot.py, который будет служить нам ботом.
class 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): # Привет if message.upper() == self._COMMANDS[0]: return f»Привет-привет, !» # Погода elif message.upper() == self._COMMANDS[1]: return self._get_weather() # Время elif message.upper() == self._COMMANDS[2]: return self._get_time() # Пока elif message.upper() == self._COMMANDS[3]: return f»Пока-пока, !» else: return «Не понимаю о чем вы. »
Теперь вернемся к запускаемому файлу:
Импортируем класс нашего бота:
from vk_bot import VkBot
Изменим основной наш цикл:
print(«Server started») for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: print(‘New message:’) print(f’For me by: ‘, end=») bot = VkBot(event.user_id) write_msg(event.user_id, bot.new_message(event.text)) print(‘Text: ‘, event.text)
То есть теперь мы будем передавать полученное сообщение объекту бота, который вернет нам нужный ответ.
Это усложнение программы просто необходимо, если вы хотите дальше улучшить функционал бота:
Создайте отдельные пакеты и классы для каждой функции _get_time и _get_weather. Организуйте наследование с общего класса. И каждую новую функцию определяйте в отдельных классах, лучше всего, конечно, еще и разделить на пакеты.
Добавьте словарь с ключом идентификатора пользователя и значением объекта бота. Таким образом, не придется каждый раз в цикле создавать объект бота. К тому же, это обеспечит пользование несколькими пользователями сразу в сложных конструкциях.
Таким образом, выбрав хорошую архитектуру кода, вы сможете создать многофункционального бота.
К примеру, я научил своего бота проигрывать музыку на компьютере, открывать сайты сидя с телефона. Присылать рецепты блюд на завтрак, обед, ужин.
Вы же можете редактировать бота под себя.
Буду рад вашим идеям. По любым вопросам пишите.
Источник: habr.com