В редакторе диалога необходимо указать название диалога и добавить как минимум 1 элемента элемент диалога (перетащить мышкой элемент из списка элементов на панели справа).
Раскрыть |
---|
|
Image Removed
|
При необходимости данный диалог можно добавить в одну или несколько групп диалогов, которые .
Раскрыть |
---|
|
Image Added
|
Группы диалогов создаются на панели "Группы диалогов".
...
Блок кода |
---|
language | java |
---|
theme | Eclipse |
---|
title | DialogProcessing |
---|
linenumbers | true |
---|
collapse | true |
---|
|
/**
* Реализация действий до отображения диалога и после
*/
public interface DialogProcessing
{
/**
* Ключ для хранение id договора, который будет сохранён в кэше бота, как авторизованный договор
*/
String CONTRACT_ID = "contractId";
/**
* Сообщение об ошибке
*/
String ERROR_MESSAGE = "responseErrorMessage";
/** Удалить привязку договора к чату */
String REMOVE_CONTRACT = "idContractRemove";
/** ID нового диалога, на который нужно перенаправить пользователя */
String NEXT_DIALOG_ID = "nextDialogId";
/**
* Макросы для элементов диалога с типом Текст.
* Для добавления нужно создать JSONObject, в котором ключи должныть быть самими макросами,
* а значение - содержимое, которое нужно установить
*/
String MACROS = "macros";
/**
* Предобработка перед отображением диалога пользователю
* @param botData пользовательские данные для определённого диалога
*/
void preDialog( ServerContext serverContext, JSONObject botData )
throws BGException;
/**
* Обработка сообщений от пользователя в момент, когда диалог отображён на экране.
* @param botData пользовательские данные для определённого диалога
* @param inputTextOfUser данные от пользователя
*/
void processDialog( ServerContext serverContext, JSONObject botData, String inputTextOfUser )
throws BGException;
/**
* @return читабельное название данного класса для понятного отображения в интерфейсе модуя
*/
String title();
} |
Свою реализацию указать для диалога можно в реакторе диалога, где после нажатия на "Выбрать класс-обработчик" будет отображена панель с списком классов из дин.кода, которые реализуют интерфейс DialogProcessing
Раскрыть |
---|
|
Image Added
|
Как пример реализации интерфейса DialogProcessing ниже приведён пример класса-реализации логики авторизации пользователя по названию договора. Данный класс отрабатывает после запроса названия договора от пользователя, полученный текст передаётся в метод processDialog(), в котором происходит поиск договора и в случае, если договор был найден, указывается, что следующим диалогом должен быть показан заранее созданный диалог с запросом пароля от личного кабинета.
...