GET /widget/config: що сервер віддає віджету
Для розробників, у коді: конфігурація одного віджета з сервера — вигляд, поведінка, локалізовані рядки інтерфейсу, FAQ-чіпи, обмеження — і шість фіксованих ключів.
GET /widget/config?code=default&lang=uk
X-Widget-Key: wk_…
Повертає конфігурацію одного віджета, задану власником, локалізовану для lang, у snake_case.
Віджет викликає його раз при завантаженні і зіставляє ключі з camelCase у window.ShukaiConfig
(Конфігурація). Кешується на годину на віджет, версію і мову; зміна
в панелі підвищує версію, тож наступне завантаження її бачить.
Відповідь
| Ключ | Тип | Сенс |
|---|---|---|
code, agent_code |
рядок | віджет і його помічник; agent_code — "" для віджета без помічника, тоді чат відповідає 409 |
active |
boolean | офлайн-гейт: false, коли в сайту закінчилися кредити або немає тарифу; віджет нічого не монтує. Зі сторінки не перевизначається |
color, position, theme, launcher, custom_css |
вигляд, як збережено; launcher — { type, value, label, container } |
|
voice_character, voice_orb_color, orb_colours |
скін орба, колір тіла і { skin, colours: { частина: "#rrggbb" } } лише для цього скіна |
|
launcher_attention |
off · subtle · prominent |
рівень привернення уваги; з нього виводиться teaser_enabled |
greeting |
рядок | локалізоване для lang — перевизначення віджета або привітання помічника |
faqs |
string[] | чіпи-підказки, локалізовані |
strings |
об’єкт | власний текст віджета для lang — ключі в Мовах і RTL |
supported_languages |
string[] | мови сайту, для вибору мови мовлення |
conversation_mode_enabled, voice_input_enabled, voice |
два голосові перемикачі і мапа голосів власника за мовами (читає /tts, віддається для повноти) |
|
page_actions_enabled, page_actions_submit_policy, page_read_values |
три перемикачі дій на сторінці; page_actions_enabled — true лише коли власник увімкнув і тариф включає |
|
page_read |
boolean | помічник може читати екран (бачить екрани додатка, або дії на сторінці збережені увімкненими, але не входять у тариф), навіть там, де не може діяти |
proactive |
boolean | якийсь екран, який бачить цей помічник, має проактивний інструмент, і тариф дозволяє — вмикає запит |
navigate_enabled |
boolean | віджет може сам виконувати перехід у межах origin |
handoff_collect, handoff_always, handoff_targets |
форма в чаті, вхід «Зв’язатися з нами», цілі переходу [{ mode, value, channel }] |
|
ai_label |
boolean | позначка «Асистент зі штучним інтелектом» над полем вводу; вмикає власник |
action_button_types |
string[] | які типи дій малюються кнопками |
Шість фіксованих ключів
Віддаються під старими назвами з фіксованими значеннями незалежно від рядка віджета — контракт із віджетом не змінився, і сторінка все ще може їх перевизначити, змінивши лише сторінку:
| Ключ | Фіксоване значення |
|---|---|
show_action_buttons |
true |
teaser_delay_ms |
4000 |
voice_input_pace |
"normal" |
voice_input_autosend |
true |
default_mode_desktop, default_mode_mobile |
"voice" — мікрофон персонажа запрошує; нічого не стартує само |
teaser_enabled — сьомий, виведений ключ: true, якщо launcher_attention не off.
Статуси
401 / 403 як на кожному ендпоінті рантайму; 404 Unknown widget code for this key. Запит
із власного довіреного origin панелі отримує active: true і обходить кеш, тож прев’ю відображає
форму під час редагування.