Как добавить бота в беседу в Вк: инструкция
Как добавить бота в беседу в ВК и кому вообще может быть интересна подобная опция? Не все пользователи социальной сети знают, как пользоваться помощниками – и зря, ведь они прекрасно регулируют процессы общения в групповых чатах.
Зачем они нужны?
Мы обязательно расскажем, как добавить чат-бота в беседу в ВК, но начнем с другого. Попробуем понять, каким вообще функционалом обладают такие помощники? Их очень много, поэтому в общих чертах дать ответ на вопрос сложно.
Специальные сервисы разработаны для упрощения процесса общения в больших групповых чатах. Например, можно с легкостью исключать неактивных пользователей или назначать бан тем, кто нарушил правила – при этом вам не придется делать это вручную. Достаточно задать команду!
Уже заинтересовались, как добавить своего бота в беседу в ВК? И это еще не все, роботы бывают разными. Одни предназначены для больших чатов, другие выступают в роли помощника. Например, отправляют информацию по запросу, собирают данные, информируют о новостях. Такие пригодятся бизнесу, тем, кто что-то продает или предлагает свои услуги.
Есть развлекательные сервисы, созданные исключительно для того, чтобы разнообразить общения. Есть планировщики или те, кто вовремя отправляют напоминания. Существует группа сервисов, умеющих подбирать под запрос стикеры, картинки, музыку, переводить слова… Всего не перечислить!
А вы знаете, как посмотреть, кто поделился записью в ВК в личных сообщениях?
Вы уже готовы разбираться, как добавить бота в беседу ВК с телефона или компьютера? Уверены, что вы с легкостью найдете интересного помощника, который сможет значительно упростить общение. Вперед!
Как это сделать?
Перед тем, как добавить бота в чат в ВК, нужно найти его группу в социальной сети. Именно так вы сможете получить доступ ко всему функционалу! Там вы найдете подробные инструкции, доступные команды, ответы на часто задаваемые вопросы и многое другое.
Итак, что необходимо делать? Приступаем!
- Откройте официальную группу – например, вот так;
- Чтобы добавить бота в чат ВК, нужно нажать на одноименный значок.
Как правило иконка, отмеченная значком плюса, находится сразу под описанием. Не потеряетесь!
Мы показываем процесс на примере Alucard, но вы можете выбрать любой другой сервис.
После нажатия на эту иконку откроется список чатов, в которых вы состоите участником. На экране появятся все доступные групповые переписки, вам нужно лишь выбрать одну из них. Кстати, можно выбрать и несколько групп сразу, но мы попробуем поработать с одной.
Чтобы добавить бота в беседу в ВК, сначала нужно выбрать чат. Если вы уже определились, отмечаем его галочкой и кликаем по значку «Пригласить». Если все сделано правильно, сначала вы увидите оповещение об успешном добавлении робота. А уже через пару секунд получите личное сообщение с дальнейшими инструкциями! Сообщение придет в выбранный вами чат.
Как добавить бота в чат ВК – понятно! Следующий шаг – назначение соответствующих прав, без которых сервис не будет работать. Здесь не о чем переживать, это совершенно нормальная практика. Пока вы не дадите роль администратора, робот не сможет выполнять свои функции и останется простым молчаливым «участником».
Поделились подробной инструкцией о том, как отключить в ВК уведомления от групп и сообществ.
- Нажимаем на название группы на верхней панели;
- Пролистываем открывшееся меню до вкладки «Участники»;
- Находим в списке название сервиса и жмем на стрелочку рядом;
- На появившейся панели щелкаем «Назначить администратором»;
- Закрываем окно настроек. Готово!
Теперь несколько слов о том, как добавить бота в ВК в беседу через телефон. В целом, алгоритм практически не имеет отличий, хотя свои особенности у мобильной версии есть. Сначала также необходимо найти группу робота, затем:
- Нажмите на кнопку добавления на главной странице;
- Выберите из списка группу, куда хотите «внедрить» помощника и щелкните «Готово»;
- Вернитесь к чату и дождитесь получения приветственного сообщения;
- Если все прошло хорошо – пора назначить соответствующую роль;
- Жмем на аватар/название на верхней панели и находим блок «Участники»;
- Ищем название робота и кликаем по трем точкам справа;
- В появившемся меню выбираем опцию «Назначить администратором».
Вот как добавить бота в беседу в ВК с телефона – никаких трудностей, можно справиться за пару минут. Главное, заранее найти официальную группу в социальной сети!
Как создать чат бот ВКонтакте. VK бот для обработки сообщений в группе.
Оглавление
Введение
В этой статье разберем по шагам как создать чат бот ВКонтакте с возможностью управления через SQL процедуры в рамках платформы Falcon Space.
Интеграция сделана на штатных средствах платформы и не затрагивает изменений в ядре платформы.
Наш бот сможет получать сообщения от пользователя и отправлять ему обратно сообщения.
Подготовка к интеграции с ВКонтакте
Для начала выполняем необходимые настройки своей группы ВК.
См. по ссылке https://dev.vk.com/api/bots/getting-started, а именно:
- Управление сообществом → Сообщения → Настройки для бота и включите пункт Возможности ботов
- Включить сообщения в вашем сообществе (Управление сообществом → Сообщения), когда бот будет готов к использованию, чтобы ему можно было написать.
- Создать ключ доступа: Откройте раздел Управление сообществом (Управление страницей, если у вас публичная страница), выберите вкладку Работа с API и нажмите Создать ключ доступа (проставляем необходимые права).
- Для возможности приглашать бота в беседу — Управление сообществом →Сообщения →Настройки для бота и поставьте галочку в пункте Разрешать добавлять сообщество в беседы. После этого в сообществе появится кнопка Пригласить в беседу, открывающая модальное окно со списком бесед.
- В Настройки / Работа с API переходим на вкладку CallbackAPI (задаем какие методы дергать на сервере при наступлении событий):
Здесь сначала указываем будущий адрес входящего API, а также секретное слово, которое мы будем проверять на стороне сервера (хранится оно будет в настройке vkSecret).
Подтверждение Callback API на стороне сервера
Создаем в /asapi входящий метод API (с vkbot кодом, формат text).
Пример:
CREATE PROCEDURE [dbo].[api_vk_vkbot] @parameters ExtendedDictionaryParameter READONLY, @username nvarchar(256) as begin -- SELECT 1 select '' Msg, 1 Result, 0 errorCode -- SELECT 2 -- сюда вставляем код со страницы настроек группы Callback API select 'XXXXXXXXX' end
На странице ВК нажимаем Подтвердить.
В настройках создаем 2 настройки:
- vkSecret — секретный ключ в настройках CallbackAPI (не путать с кодом подтверждения CallbackAPI).
- vkToken -токен доступа, который мы получили на вкладке Ключи доступа в ВК настройках группы (он будет использоваться в исходящем API методе для отправки запросов в сторону ВК).
Обработка событий от ВК
Реализуем метод входящего API vkbot (код сущности vk, код метода vkbot, тип вывода TEXT):
CREATE PROCEDURE [dbo].[api_vk_vkbot] @parameters ExtendedDictionaryParameter READONLY, @username nvarchar(256) as begin declare @params nvarchar(max) = (select value2 from @parameters where [key] = 'InputStream') declare @secret1 nvarchar(128) = dbo. as_setting('vkSecret', '') declare @group_id int, @type nvarchar(128), @event_id nvarchar(256), @v nvarchar(128), @object nvarchar(max), @secret nvarchar(128) SELECT @group_id = group_id, @type = type, @event_id = event_id, @v = v, @object = object, @secret = secret FROM OPENJSON(@params, '$') WITH ( group_id int '$.group_id', type nvarchar(128) '$.type', [event_id] nvarchar(256) '$.event_id', [v] nvarchar(512) '$.v', [object] nvarchar(max) '$.object' as json, [secret] nvarchar(max) '$.secret' ) if(@secret<>@secret1) begin execute as_print 'VKBot wrong secret' return end exec [as_trace_warn] @code='vkbot_in', @header=@type, @itemID = @group_id, @text = @object, @username = '' declare @sendCommand nvarchar(128)='', @sendParams nvarchar(max) = '' print @object if(@type ='message_new') begin /* Сообщение в чат группы {"group_id":70971776,"type":"message_new", "event_id":"cc490c446cae2281cf4c35b2de957b4e20790a0a", "v":"5.50", "object":{"id":494,"date":1665817659,"out":0,"user_id":1885821,"read_state":0, "title":"","body":"22","owner_ids":[]}, "secret":""} */ declare @object_id int, @object_date int, @object_out int, @object_user_id int, @object_read_state int, @object_title nvarchar(max), @object_body nvarchar(max), @object_owner_ids nvarchar(max) SELECT @object_id = id, @object_date = date, @object_out = out, @object_user_id = user_id, @object_read_state = read_state, @object_title = title, @object_body = body, @object_title = title, @object_owner_ids = owner_ids FROM OPENJSON(@object, '$') WITH ( id int '$.id', date int '$.date', [out] int '$.out', [user_id] int '$.user_id', [read_state] int '$.read_state', [title] nvarchar(max) '$.title', [body] nvarchar(max) '$.body', [owner_ids] nvarchar(max) '$.owner_ids' as json ) declare @ps ExtendedDictionaryParameter insert into @ps ([Key], Value2) select 'group_id', cast(@group_id as nvarchar) union select 'type', cast(@type as nvarchar) union select 'event_id', cast(@event_id as nvarchar) union select 'object_id', cast(@object_id as nvarchar) union select 'object_date', cast(@object_date as nvarchar) union select 'object_out', cast(@object_out as nvarchar) union select 'object_user_id', cast(@object_user_id as nvarchar) union select 'object_read_state', cast(@object_read_state as nvarchar) union select 'object_title', cast(@object_title as nvarchar) union select 'object_body', cast(@object_body as nvarchar) union select 'object_owner_ids', cast(@object_owner_ids as nvarchar) declare @msg nvarchar(max) = '' exec vk_message_new_action @parameters = @ps, @res = @msg output -- обработка нового сообщения в чате группы if(len(@msg)>0) begin set @sendCommand = 'messages. send' set @sendParams = '&user_id='+cast(@object_user_id as nvarchar)+ '&peer_id=-'+cast(@group_id as nvarchar)+ '&chat_id='+cast(@group_id as nvarchar)+ '&message=' + @msg end end -- SELECT 1 select '' Msg, 1 Result, 0 errorCode -- SELECT 2 select 'ok' if(@sendCommand<>'') begin -- SELECT 3 select 'apirequest' type, 'vk_send' code, 'command' p1_name, @sendCommand p1_value, 'params' p2_name, @sendParams p2_value end end
Что делает процедура:
- проверяет секретное слово (если неверное, то ошибку выдает)
- логирует запрос в trace с кодом vkbot
- определяет тип команды (пока это только команда Новое сообщение).
- вызывает процедуру vk_message_new_action для обработки команды (в ней будет заложена бизнес-логика команд от пользователя).
- если есть выходная команда — то вызывает исходящий API запрос к ВК (vk_send).
Процедура обработки команды пользователя в ВК чате
CREATE OR ALTER PROCEDURE [dbo].vk_message_new_action @parameters ExtendedDictionaryParameter readonly, @res nvarchar(max) output AS BEGIN set @res = '' declare @text nvarchar(max) = (select Value2 from @parameters where [Key]='object_body') if (CHARINDEX('привет', @text) > 0) begin set @res = 'Приветствую вас (это бот). Обратную связь дадим в ближайшее время. Если что - пишите на whatsapp +7 920 954 2217' return end set @res = '' END
На входе процедура получает множество параметров в @parameters — коды параметров зависят от типа команды (в процедуре vkbot можно посмотреть какие передаются параметры для типа new_message).
В итоге наша процедура должна что-то выдать в @res. Если это пустая строка — то ничего не происходит. Если непустая — то отправляется команда от имени сообщества ВК.
Метод отправки команды в ВК
Создаем исходящий метод отправки vk_send (тип GET JSON)
Процедура Request:
CREATE PROCEDURE [dbo]. [api_vk_send_request] @parameters ExtendedDictionaryParameter READONLY, @username nvarchar(32) AS BEGIN declare @params nvarchar(max) = (select value2 from @parameters where [key]='params') declare @command nvarchar(max) = (select value2 from @parameters where [key]='command') declare @random nvarchar(128) = ABS(CHECKSUM(NEWID()) % 10000) declare @token nvarchar(max) = dbo.as_setting('vkToken', '') declare @url nvarchar(max) = 'https://api.vk.com/method/'+@command+'?v=5.131'+ '&access_token=' +@token+'&random_id='+@random + '&'+ @params declare @header nvarchar(max) = 'out ' + @command exec [as_trace_warn] @code='vkbot', @header= @header, @itemID = 0, @text = @params, @username = '' select '' Msg, 1 Result, @url Url END
Что делается в процедуре:
- Получаем из @parameters какую команду и с какими параметрами отправить в ВК.
- Готовим URL для команды, включая системные параметры токен, случайное число, версия API.
- Логируем отправку запроса в trace с кодом vk_bot
Ответ от ВК обрабатывается в процедуре response:
CREATE PROCEDURE [dbo].[api_vk_send_response] @response nvarchar(max), @parameters ExtendedDictionaryParameter READONLY, @username nvarchar(32) AS BEGIN -- SELECT 1 select '' Msg, 1 Result, @response Response exec [as_trace_warn] @code='vkbot', @header= 'outresponse', @itemID = 0, @text = @response, @username = '' END
Здесь мы просто логируем отклик ВК на наш запрос в trace с кодом vkbot.
Что получилось в итоге
Пока наш бот просто обрабатывает момент нахождения в строке слова Привет — если оно есть, то выдается стандартный текст.
Каков образ действий разработчика
Чтобы внедрить в свой проект подобного бота, вам необходимо перенести все указанные объекты к себе.
Вся основная часть работы заключается в обработке входящего запроса и выдаче текста от бота. Это процедура vk_message_new_action.
Если вы хотите сделать, чтобы бот реагировал не только на событие Новое сообщение, но и на другие (Новый коммент, вступление в группу и т. д.), то вам необходимо добавлять новые if (@type=’…’) во входящем API vkbot, которые по аналогии будут вызывать другие хранимые процедуры, например vk_comment_new_action.
Различные типы событий описаны здесь — https://dev.vk.com/api/community-events/json-schema
Чего пока нет в этом механизме чат-бота
В решение можно добавить следующее:
- обработка ошибочных состояний при отправке запросов
- работа с клавиатурой (кнопки на чате для пользователя). https://dev.vk.com/api/bots/development/keyboard
- обработка смайликов, выдача картинок, документов и т.д.
- обработка многоступенчатых команд (по аналогии с чатом Телеграм)
- интеграция чат бота с системой уведомлений Falcon Space.
- задействование большего числа параметров отправки сообщений https://dev.vk.com/method/messages.send
Falcon Space — функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?
Google поиск по нашей документации
Документация Simla.
com: Страница не найденаДокументация
для
Разработчики
Секции
Продажи129статьи
- Демонстрационные данные в системе
- Заказы
- Клиенты
- Задания
- Склад
- Менеджеры
- Финансы
40 статьи
- Рассылки
- Сегменты
- Правила
51 статьи
- Создание и редактирование ключа API
- Работа с маркетплейсом
- Службы доставки
- Модули для интеграции с сайтом
- Телефония
- Модули для работы с датабуками
- Рекомендации
- Отслеживание звонков
- Аналитические услуги
45 статьи
- Аналитика по заказам
- Аналитика по клиентам
- Аналитика по продуктам
- Аналитика по менеджерам
- Аналитика по коммуникациям
- Финансовая аналитика
96 статьи
- Пользователи
- магазины
- Книги данных
- Статусы заказов
- Статусы продуктов
- Триггеры
- Настройки связи
- Верность
- Настройки системы
43 статьи
- Функциональность чата
- Подключение мессенджеров и чатов
- Боты
3 статьи
- Импорт клиентской базы в систему
- Импорт заказов в систему
- Импорт товаров в систему
Ошибка сервера в приложении ‘/’.
Представление ‘~/Views/Jobs/error-static.cshtml’ или его мастер не найдены, или механизм представления не поддерживает искомые расположения. Был выполнен поиск в следующих местах:~/Views/Jobs/error-static.cshtml. Представление ‘~/Views/Jobs/error-static.cshtml’ или его мастер не найдены, или механизм представления не поддерживает искомые расположения. Поиск производился в следующих местах:
~/Views/Jobs/error-static.cshtml Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.InvalidOperationException: представление «~/Views/Jobs/error-static.cshtml» или его главный элемент не найдено, или механизм представления не поддерживает искомые расположения. Поиск производился в следующих местах:
~/Views/Jobs/error-static. cshtml
Ошибка источника:
Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений. |
Трассировка стека:
|