All checks were successful
continuous-integration/drone/push Build is passing
92 lines
3.4 KiB
Markdown
92 lines
3.4 KiB
Markdown
## Поддержка шаблонов и конфигурации
|
||
|
||
### Основные секции
|
||
|
||
```xml
|
||
<flow>
|
||
<actions> </actions>
|
||
<screens> </screens>
|
||
<commands> </commands>
|
||
</flow>
|
||
```
|
||
|
||
### Actions
|
||
|
||
Action - Это действие пользователя бота, которое бот должен обработать, а также соответсвующая кнопка или inline-кнопка.
|
||
|
||
```xml
|
||
<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`
|
||
|
||
```xml
|
||
<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`. Используется для простых действий, не требующей программной логики.
|
||
|
||
```xml
|
||
<command actionRef="start-action" screenRef="on-start-screen" id="30001" name="startCommand"/>
|
||
```
|
||
|
||
`actionRef` - ссылка на action, может использоваться id или name
|
||
`screenRef` - ссылка на screen, может использоваться id или name |