Перейти к основному контенту

Metabot Widget с диплинками

Статья в работе!

Чат-виджет с диплинками

При создании и тестировании чат-бота в канале Metabot Widget необходимо провести первоначальные настройки виджета. Как это сделать подробно описано в статье Metabot Widget.

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

Настройка маршрутов с диплинками
Для того, чтобы настроить в чат-виджете дополнительные кнопки, например, переход в определенные сценарные ветки или быстрый вывод информации, необходимо настроить маршруты с переходами в данные разделы сценария или скрипты.
Также можно настроить на странице сайта кнопку с запуском диплинка и переходом в чат-виджет в соответствующий сценарий.
Рассмотрим пример:
1. Разместим на тестовой странице сайта 2 кнопки с диплинками:
  • Демо-бот
  • Поддержка
2. Создадим 3 ссылки в разделе Ссылки с именем диплинков, например, Deeplink1, Deeplink2, Deeplink3.
Заполним следующие параметры:
  • Имя - указать имя ссылки, например Deeplink1;
  • Текст - текстовое сообщение, которое будет отображено в чат-виджете;
  • Тип ссылки - выбираем пункт Ссылка на бот-скрипт (Deep Link)
Нажимаем кнопку Создать.

изображение.png

Аналогично создаем ссылки с именами: Deeplink2 и Deeplink3.
Результатом проделанных действий будут созданные 3 ссылки как на рисунке.


изображение.png

3. Создадим маршруты в разделе Маршруты с регулярными выражениями соответствующими именам созданных ссылок.
  • ДЕМО-БОТ

Должны быть активированы следующие свойства маршрута и заполнены соответствующие поля:

изображение.png

  • ПОДДЕРЖКА

Должны быть активированы следующие свойства маршрута и заполнены соответствующие поля:

изображение.png

  • Тестовый бот - СЕРВИС ОПРЕДЕЛЕН - ДЕМО-БОТ

Должны быть активированы следующие свойства маршрута и заполнены соответствующие поля, также необходимо указать условие JS:

изображение.png

изображение.png

  • Тестовый бот - СЕРВИС ОПРЕДЕЛЕН - ПОДДЕРЖКА

Должны быть активированы следующие свойства маршрута и заполнены соответствующие поля, также необходимо указать условие JS:

изображение.png

изображение.png

Контроль автоопределения текущего раздела сайта выполняется с помощью v8 условий в маршруте с диплинком.

Добавляются 2 диплинка для ТЕСТОВОГО БОТА с таким условие (условия немного отличаются):
// Запуск диплинка ДЕТО-БОТ

var requestJson = null;
if (request) {
  requestJson = request.json;
}

var requestDeeplinkData = null;
if (requestJson && requestJson.deeplink) {
  requestDeeplinkData = requestJson.deeplink;
}

var requestService = null;
if (requestDeeplinkData && requestDeeplinkData.service) {
  requestService = requestDeeplinkData.service;
}

if (requestService === null || requestService === '') {
  return false;
}

var availServices = ['demo_bot'];
if (availServices.includes(requestService)) {
  return true;
} else {
  return false;
}

Смысл данного условия в том, что при клике на кнопку с диплинком с фронта передается параметр service.
Далее в диплинке ТЕСТОВЫЙ БОТ мы определяем какой это сервис и запускаем необходимый скрипт.

  • Тестовый бот - СЕРВИС НЕ ОПРЕДЕЛЕН

ДолжныПоследним бытьмаршрутом активированыс следующиедиплинком свойстваТЕСТОВЫЙ маршрутаБОТ и заполненыv8 соответствующиеусловием поля,идет такжемаршрут, необходимокоторый указатьзапускает приветствие бота если сервис не распознан.

В нем условие JS:можно и не писать, но в таком случае этот маршрут должен обязательно идти последним в списке.
На случай если кто-то случайно передвинет его выше в списке маршрутов, v8 просто не даст ему запуститься, если сервис ОПРЕДЕЛЕН.

изображение.png

изображение.png

изображение.png
Контроль автоопределения текущего раздела сайта выполняется с помощью v8 условий в маршруте с диплинком.
Добавляются
2
// Запуск диплинка дляТЕСТОВЫЙ ТЕСТОВОГОБОТ, БОТАесли сервис с такимсайта условиене передан или не определен

var requestJson = null;
if (условияrequest) немного{
  отличаются):requestJson = request.json;
}

var requestDeeplinkData = null;
if (requestJson && requestJson.deeplink) {
  requestDeeplinkData = requestJson.deeplink;
}

var requestService = null;
if (requestDeeplinkData && requestDeeplinkData.service) {
  requestService = requestDeeplinkData.service;
}

if (requestService === null || requestService === '') {
  return true;
}

var availServices = ['demo_bot', 'support'];
if (availServices.includes(requestService)) {
  return false;
} else {
  return true;
}

Настройка чат-виджета с диплинками
Настройка чат-виджета с диплинками