Интеграция VK Assistant с VK Teams
Общая информация
В случае интеграции VK Assistant и VK Teams зачастую требуется, чтобы бот в VK Teams, связанный с VK Assistant, добавлялся автоматически при логине пользователя в VK Teams.
При этом возможны два сценария:
- Пользователь входит в VK Teams, выполняется проверка на наличие бота, и при его отсутствии отправляется запрос в VK Assistant на приветствие. VK Assistant через бота отправляет приветственное сообщение (не создавая у себя сессию) и ждёт вопросов от пользователя.
- Пользователь входит в VK Teams, выполняется проверка на наличие бота, и при его отсутствии отправляется запрос в VK Assistant. VK Assistant создаёт сессию с заданным сценарием и через бота начинает диалог.
Шаг 1. Создание бота в VK Teams
На DEV/TEST окружении возможно создание бота через интерфейс VK Teams в @metabot. Однако на PROD рекомендуется пользоваться способом, указанным в данном разделе.
Выполнить команду:
/usr/local/bin/add_bot.sh 1000000001 da_bot Помощник da_bot_token 1 /usr/local/myteam/ic_task_notification.png
, где:
- 1000000001 — uin;
- da_bot — nick;
- Помощник — name;
- da_bot_token — указать nick+"_token";
- 1 — право писать первым;
- /usr/local/myteam/ic_task_notification.png — путь до аватара бота.
Вывод команды будет следующим:
* rapi setNick for 1000000001 to da_bot
da_bot: rapiSetNick ok, nick updated
001.1234578135.7777751343:1000000001
Повторный запуск позволяет изменить аватар и nick, но не позволяет изменить имя.
Шаг 2. Подключение бота VK Teams к VK Assistant
Для подключения бота, созданного в VK Teams, необходимо настроить следующие переменные окружения в компоненте core bots:
-
MY_TEAM
— при использовании VK Teams — true. -
MY_TEAM_DEBUG
— для включение отладки — true. MY_TEAM_TOKEN
— токен бота, например, 001.1234578135.7777751343:1000000001.MY_TEAM_DOMAIN
— адрес Bot API, например, https://api.vkteams.<YOUR_DOMAIN>.ru/bot/v1.-
GENERATE_BOT_USERS
— автосоздание пользователей, пришедших в VK Assistant через бот — true. -
MYTEAM_DIRECT_MESSAGE_TOKEN
— секретный токен, генерируется случайным образом с необходимым уровнем сложности и задаётся при необходимости автоматического добавления бота пользователям.
Шаг 3. Настройка автоматического добавления бота при входе пользователя
В сервисе Boss в VK Teams выполняются следующие настройки (более подробная и актуальная информация в документации VK Teams):
-
В /usr/local/nginx-im/html/myteam/myteam-config.json добавить:
digital-assistant
— ID бота при его наличии, например 1000000001. Если значение пустое, значит считаем, что в данной инсталляции VK Teams нет VK Assistant.digital-assistant-search-positioning
— позволяет включить или отключить пин бота при клике на поиск, например, true.
-
Применить:
, где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:
-
Конфигурируется только сервис Boss, либо через командный порт, либо в imagine разделе конфигурационного файла (
bos_pre.tcl
):digital_assistant_id
— id бота — последние цифры токена, выданного при создании бота, например, 1000000001.digital_assistant_auth_token
— токен для хедера authorization, значение переменной окруженияMYTEAM_DIRECT_MESSAGE_TOKEN
компонента core/api VK Assistant.digital_assistant_hostname
— хост и порт VK Assistant, например, https://da.<YOUR_DOMAIN>.ru.digital_assistant_fetch_events_endpoint
— эндпоинт до VK Assistant, например, /core/api/Users/greet/myTeam/.digital_assistant_tout
— таймаут коннекта в секундах (по умолчанию 10).
Внести полученные параметры и выполнить скрипт однострочник, применяющий конфигурацию:
for port in $(pgrep bos_srv -a | sed -r 's/^.*-p ([0-9]+) .*/\1/g'); do \ echo "cp set digital_assistant_id 1000000001" | /usr/local/bin/cpsh $port; \ echo "cp set digital_assistant_auth_token myteamdirecttoken" | /usr/local/bin/cpsh $port; \ echo "cp set digital_assistant_hostname https://da.вашдомен.ru" | /usr/local/bin/cpsh $port; \ echo "cp set digital_assistant_fetch_events_endpoint /core/api/Users/greet/myTeam" | /usr/local/bin/cpsh $port; \ echo "cp set digital_assistant_enabled true" | /usr/local/bin/cpsh $port; \ echo "cp set digital_assistant_tout 7" | /usr/local/bin/cpsh $port; \ done
Внимание
Рестарт сервера или сервисов Boss приведет к сбросу установленных значений до дефолтных.
-
Для закрепления полученного результата при рестарте сервисов Boss необходимо дополнить конфигурационный файл /srv/oap/bos_pre.tcl в блоке
set imagine_config
:set imagine_config " digital_assistant_id 1000000001 digital_assistant_auth_token myteamdirecttoken digital_assistant_hostname https://da.<YOUR_DOMAIN>.ru digital_assistant_fetch_events_endpoint /core/api/Users/greet/myTeam digital_assistant_enabled true digital_assistant_tout 7
Проверить конфигурацию можно так:
Прочие настройки сервиса Boss:
digital_assistant_kick_on_session_start
— проверять наличие бота у пользователя только на логине учетки (по умолчанию false).digital_assistant_kick_on_fetch_events
— проверять наличие бота у пользователя постоянно, до тех пор, пока он не добавится (по умолчанию false).
Настройка добавления бота с созданием новой сессии в VK Assistant:
Вместо digital_assistant_fetch_events_endpoint
следует использовать digital_assistant_session_start_endpoint /core/api/Sessions/startServiceSession
.