Установка виджета

Строка вставки, что настраивается в кабинете, как ведёт себя окно и чего у виджета пока нет.

Строка вставки #

Скрипт ставится один раз перед </body>. Всё остальное — цвет, тексты, звук, значок, каналы — приходит с сервера по data-widget-id и меняется в кабинете без правки страницы.

Пример вызова
<script async
  src="https://api.widgetchat.ru/widget/bozex-support-widget.js"
  data-widget-id="wc_9qA…Lk"
></script>

Один виджет на страницу. Скрипт async: он не блокирует отрисовку и не ждёт загрузки страницы.

Что виджет запрашивает #

GET /widget/config/{widgetId}

Настройки вида и текстов. Ответ разрешён только доменам, объявленным в карточке сайта: чужая страница с вашим widget-id настроек не получит.

Ответ
{"widgetId": "wc_9qA…Lk", "workspaceKey": "example-ru",
 "apiUrl": "https://api.widgetchat.ru",
 "tokenUrl": "https://api.widgetchat.ru/widget/token/wc_9qA…Lk",
 "appearance": {"color": "#07aa46", "title": "Напишите нам", … }}

Вход посетителя #

GET /widget/token/{widgetId}?deviceId=…

Виджет сам получает подписанный токен окна и дальше работает им. Токен привязан к рабочему пространству сайта и живёт ограниченное время; посетитель опознаётся по устройству, поэтому история сохраняется между визитами.

Программной идентификации посетителя (передать своё имя, почту или номер клиента из кода страницы) сейчас нет. Сведения о посетителе появляются в разговоре, только если их передал сам сайт при выдаче токена на своей стороне.

Домены #

Список доменов задаётся в карточке сайта. Виджет на неуказанном домене получит отказ на запрос настроек — это защита от чужой страницы, которая поставила бы ваш widget-id себе.