Зв'язки реакцій
Реакції рідко працюють поодинці — вони викликають одна одну кнопками, ланцюжками, гілкою «інакше», відповідями в діалозі тощо. Зв'язки реакцій показують цей граф переходів: для будь-якої реакції видно, куди вона веде (вихідні зв'язки) і звідки в неї приходять (вхідні зв'язки). Це допомагає не загубитися у великих сценаріях і безпечно видаляти реакції.
Що таке зв'язок
Зв'язок — це спрямований перехід від однієї реакції до іншої, позначений механізмом, який породив цей перехід. Платформа обходить реакцію цілком і збирає всі вихідні переходи, відкидаючи посилання на саму себе і порожні цілі, а однакові переходи згортає. Список зв'язків доступний із редактора реакції і через API: GET /api/bots/{id}/reactions/{id}/links.
Вхідні та вихідні
- Вихідні — на які реакції посилається поточна (її кнопки, ланцюжки, гілка «інакше» тощо).
- Вхідні — які реакції посилаються на поточну. Корисно перед видаленням: якщо на реакцію хтось посилається, видалення розірве сценарій.
12 механізмів зв'язків
- Кнопка (
button) — inline-кнопка типу «Виклик реакції» відкриває іншу реакцію при натисканні. - Заміна кнопкою (
button_replace) — кнопка з поведінкою «замінити повідомлення» підставляє вміст прив'язаної реакції. - Динамічна кнопка (
dynamic_button) — кнопка з блоку «Динамічні кнопки зі списку» веде до реакції. Див. Динамічні кнопки і параметри. - Блок «Реакція» (
block) — блок повідомлення, що викликає іншу реакцію під час надсилання. - Ланцюгова реакція (
chain) — дія «Ланцюгова реакція» запускає іншу реакцію. - Гілка «інакше» (
else) — якщо умови не виконались, керування переходить до зазначеної реакції. - Веб-запит: успіх (
web_success) — реакція, що запускається при успішному веб-запиті. - Веб-запит: помилка (
web_error) — реакція, що запускається при помилці веб-запиту. - Очікувана відповідь (
expected_answer) — реакція, що спрацьовує на відповідь користувача в кроці діалогу. - Таймаут очікування (
expected_timeout) — реакція, що спрацьовує, якщо відповіді не було до таймауту. - Наступна реакція (
goto_next) — дія «Наступна реакція» передає керування наступній підхожій реакції в списку. - Сценарій (
flow) — реакція, прив'язана до завершення сценарію (flow).
Навіщо дивитися граф
- Навігація по сценарію — швидко перейти до пов'язаної реакції, не шукаючи її в списку.
- Безпечне видалення — побачити вхідні зв'язки і не зламати переходи.
- Аудит — перевірити, що всі гілки сценарію ведуть куди потрібно і немає «висячих» переходів.
Що далі
- Реакції: основи — порядок спрацювання, ланцюжки і
goto_next. - Повідомлення і кнопки — кнопки і кроки діалогу, що породжують зв'язки.
- Динамічні кнопки і параметри — зв'язки через динамічну клавіатуру.
- Сценарії — зв'язок через завершення сценарію.