Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

В редакторе диалога необходимо указать название диалога и добавить как минимум 1 элемента элемент диалога (перетащить мышкой элемент из списка элементов на панели справа).

Раскрыть
titleРедактор диалога

Image Removed

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

Раскрыть
titleРедактор диалога

Image Added

Группы диалогов создаются на панели "Группы диалогов".  

...

Блок кода
languagejava
themeEclipse
titleDialogProcessing
linenumberstrue
collapsetrue
/**
 * Реализация действий до отображения диалога и после
 */
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

Раскрыть
titleВыбор реализации

Image Added

Как пример реализации интерфейса DialogProcessing ниже приведён пример класса-реализации логики авторизации пользователя по названию договора. Данный класс отрабатывает после запроса названия договора от пользователя, полученный текст передаётся в метод processDialog(), в котором происходит поиск договора и в случае, если договор был найден, указывается, что следующим диалогом должен быть показан заранее созданный диалог с запросом пароля от личного кабинета.

...