Примеры плагинов

Пример 1. Общий плагин (скрипт общего плагина)

Полное имя библиотеки «клеится» из трех составляющих:

  • Общий плагин (Common);

  • Название плагина «Bot»;

  • Скрипт «Commands».

Подключается такая библиотеки с помощью кода

require('Common.Bot.Commands');

После подключения, в JavaScript автоматически будет доступна переменная CommonBotCommands

К методам CommonBotCommands можно обращаться, например, для отправки сообщения в мессенджер из JavaScript:

CommonBotCommands.SendText('Текст отправленный из V8');

Полный список команд каждой библиотеки выходит за рамки данной документации и может постоянно дополняться, для этого смотрите отдельную документацию.

В данном примере речь идет именно об общей библиотеке (Common), внутри которой уже описан специальный объект, который можно использовать с помощью методов, чтобы добиться такого же варианта использования вы должны самостоятельно описать свой объект на JavaScript. Оформление в виде JavaScript объекта при создании вашего собственного плагина бизнеса не является обязательным, за счет того что ваши скрипты будут подключаться в виде сниппетов.

Вы можете просто описать любые переменные и функции в вашей библиотеке и обращаться к ним по имени

ДЛЯ БИБЛИОТЕК УРОВНЯ БИЗНЕСА автоматически создаваемые переменные-объекты не доступны (или доступны только в тех библиотеках, которые для вас создаст команда Метабот).

Отметим, что существуют другие библиотеки, например, такие как moment.js. Подключение и использование таких библиотек отличается от использования библиотек созданных на платформе.

Например, для moment.js, не нужно указывать три «составляющие» названия скрипта (уровень доступа, плагин и скрипт).

Для moment.js мы явно объявляем переменную и «экспортируем в нее библиотеку»

let moment = require('moment');

Подключение различных библиотек может отличаться и зависит от реализации самой библиотеки. Но, в основном как подключать и будет ли доступна автоматически переменная-объект понятно из названия библиотеки (если при подключении нет указания уровня доступа, то скорее всего это OpenSource библиотека).

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

Пример 2. Плагин бизнеса (скрипт вашего плагина)

В разделе Плагины Бизнеса создадим новый плагин для формирования текста, который мы будет отправлять пользователю с помощью атрибутов бота.

Заполним поля формы, пример показан ниже на рисунке, далее сохраним форму.

Далее, перейдем в скрипты плагина.

Создадим новый скрипт

Заполните поля формы, пример приведен ниже на рисунке. Укажите в исходном коде скрипта:

const greetMsg = 'Привет, ' + lead.getData('name') + '!';
memory.setAttr("greet", greetMsg);

Здесь мы сохраняем текст приветствия в memory (временном атрибуте бота).

Полное имя библиотеки «клеится» из трех составляющих:

  • Плагин бизнеса (Business);

  • Название плагина «Notifications»;

  • Скрипт «HelloLead».

Подключается с помощью кода

snippet('Business.Notifications.HelloLead');

Для проверки работы плагина, в скрипт бота необходимо добавить две команды:

  • Выполнить JavaScript, с следующим содержимым:

snippet('Business.Notifications.HelloLead');

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

  • Отправить текст, c следующим содержимым:

{{ &$greet }}

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

Результат работы скрипта в телеграм:

Пример 3. Использование общего плагина в плагине бизнеса

Модифицируем пример 2 так, чтобы текст отправлялся не с помощью команды Отправить текст, а прям из JS кода плагина.

В исходном коде скрипта укажем:

require('Common.Bot.Commands');
const greetMsg = 'Привет, ' + lead.getData('name') + '!';
CommonBotCommands.sendText(greetMsg);

Удалим команду Отправить текст, команду Выполнить JavaScript оставляем без изменений.

В скрипте должна остаться одна команда.

Результат работы данного скрипта будет идентичным примеру 2:

Last updated