3.4 KiB
Поддержка шаблонов и конфигурации
Основные секции
<flow>
<actions> </actions>
<screens> </screens>
<commands> </commands>
</flow>
Actions
Action - Это действие пользователя бота, которое бот должен обработать, а также соответсвующая кнопка или inline-кнопка.
<action id="10002" name="help-action" command="/help">Help</action>
id, name - идентификаторы узла (экшена)
command - команда Telegram, должна начинаться со знака "/"
requestContact="true|false" - кнопка запроса контактных данных
requestLocation="true|false" - кнопка запроса метоположения
содержимое тега - вводимый текст, используется как экранная кнопка
url - ссылка для inline-кнопки
callbackData - callback данные для inline-кнопки
callbackDataRegexp - regexp для обработки callback программным способом
callbackDataStartWith - префикс, для обработки callback программным способом
Screens
Screen - то, что бот ответит пользователю, обычно текст и набор кнопок с действиями. В качестве текста может задаваться шаблон, контекст передается при программной обработке при установленном TemplateRenderer
<screen id="20001" name="on-start-screen">
<text>This is demo bot</text>
<keyboard>
<row>
<button actionRef="help-action">Action.name</button>
</row>
</keyboard>
</screen>
text - выводимый текст
keyboard - описание клавиатуры
Keyboard
Описание клавиатуры
Row
Одна строка кнопок клавиатуры
Button
if - видомость кнопки, значение true, false или имя метода из контекста экрана (для программной обработки)
actionRef - id или name action, описанный в соответсвующей секции
Если кнопка не ссылается на action, то можно задать следующие свойства:
url - ссылка для inline-кнопки
callbackData - callback данные для inline-кнопки
callbackDataRegexp - regexp для обработки callback программным способом
callbackDataStartWith - префикс, для обработки callback программным способом
Commands
Простая команда, при совершении action будет выведен screen. Используется для простых действий, не требующей программной логики.
<command actionRef="start-action" screenRef="on-start-screen" id="30001" name="startCommand"/>
actionRef - ссылка на action, может использоваться id или name
screenRef - ссылка на screen, может использоваться id или name