Выполнить JavaScript Callback
Результатом работы данной команды является прием файлов в Телегам боте, отправленных пользователем.
- Когда данная команда запущена, ее состояние зацикливается в текущей точке и текущий и любой следующий входящий вебхук будет обрабатываться этим JavaScript кодом;
- Выйти из команды и перейти к следующей или к другому скрипту можно только с помощью возврата специального значения из JavaScript
- Запроса любого значения: текста, файла, фото, медиа;
- Интеграции с любой системой: машиной JSON состояний или любым NLP (зацикливая диалог на NLP), системой обработки голосовых сообщений, системной распознавания изображений.
Добавить в скрипт ее можно, выбрав пункт Выполнить JavaScript Callback из списка Команд:
После выбора данной команды в списке Команд перед вами откроется диалоговое окно настройки свойств:
С пунктом Использовать условие вы можете познакомиться на странице Условие выполнения команды JS.
Следующие поля являются обязательными:
- Сообщение-вопрос отправляемое до старта данной команды — сообщение которое будет отправлено в мессенджер при старте данной команды, поле обязательно для заполнения ТОЛЬКО, если выключено поле Запустить Callback сразу при старте этой команды;
- Сообщение при возникновении ошибки — сообщение которое будет отправлено в мессенджер при возникновении ошибки;
- Запустить Callback сразу при старте этой команды — если поле неактивно, то JavaScript код запустится только после того как пользователь получит Сообщение-вопрос отправляемое до старта данной команды в мессенджер и что-то ответит;
Если поле активно и это первый запуск JavaScript Callback данной команды, то в JavaScript будет установлена в true системная предопределенная переменная isFirstImmediateCall, во всех других случаях isFirstImmediateCall устанавливается в false. Это необходимо, чтобы можно было проинициализировать компонент и, например, выслать текст вопроса или отправить изначально меню и т.д.
- JavaScript Callback — здесь указывается исходный код вашего JavaScript компонента.
По кнопке Создать как итог команда появится в редакторе скрипта:
Возвращаемые значения
JavaScript Callback всегда должен возвращать данные с помощью «return» в определенном формате:
Для завершения инициализации
- return null.
Используется, чтобы платформа ничего не делала со своей стороны, ожидая ответа пользователя. Вместо retrurn null можно ничего не указывать после ключевого слова return.
Для прерывания цикла
- return true;
- return { "result": true ... другие параметры };
- return { "break": true ... другие параметры }.
Используется для выхода из замыкания и переходу к следующей команде текущего скрипта (если не указан параметр для перехода к другому скрипту).
Прерывание с помощью throw new Error("break") недопустимо, в таком случае JS прервется, но из зацикливания не выйдет, т.е. будет распознано как return null.
- "run_script_by_code": "код_вашего скрипта" — если указан этот параметр, то выполняется выход из замыкания и переход к указанному скрипту по коду.
Для повторения цикла
- return false;
- { "result": false ... другие параметры }.
Используется для завершения обработки JavaScript (выхода из JavaScript), без прерывания зацикливания. Callback продолжит выполнение цикла и при приеме любого входящего сообщения мы опять попадем в JavaScript код данной команды (если не указан параметр для перехода к другому скрипту).
- "fallback": "текст вашего фолбэка" — используется для вывода вместе с фолбэком текста-объяснения;
- "run_script_by_code": "код_вашего скрипта" — используется для запуска другого скрипта по коду, если параметр передан, то fallback и повтор вопроса выводиться не будут;
- "is_repeat_prompt": true / false — выводить или нет повтор вопроса. Повтор вопроса выводится только, если он указан в настройках команды.
Нет комментариев