> For the complete documentation index, see [llms.txt](https://docs.mluvii.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mluvii.com/pro-it-specialisty/widget-api.md).

# WIDGET API

### Přístup k API

Po nahrání tlačítka se volá callback funkce `$owidgetOnLoad`. Pomocí objektu `owidget` lze volat funkce API.

```html
<script type="text/javascript">
  (function () {
    var scr = document.createElement('script');
    scr.type = 'text/javascript';
    scr.async = true;
    scr.charset = 'UTF-8';
    scr.src = '//app.mluvii.com/widget/OOWidget.js';
    scr.$owidgetOnLoad = function (owidget) {
      if (!owidget.isSupported) {
        return;
      }
      // owidget.init(...);
      // ...
      // owidget.connectToServer();
    };
    var ffs = document.getElementsByTagName('script')[0];
    ffs.parentNode.insertBefore(scr, ffs);
  })();
</script>
```

## Funkce api

### `init`

#### Syntaxe

`owidget.init(companyId, [widgetPreset], [language], [scope]);`

#### Parametry

* `companyId` GUID identifikující společnost.
* `widgetPreset` Název balíčku. Pokud parametr chybí, použije se výchozí balíček.
* `language` Jazyk balíčku. **Pokud parametr chybí, rozhodují další parametry viz níže**
* `scope` Nepovinný parametr. Balíček se při inicializaci pokusí obnovit možnou probíhající konverzaci, pouze pokud byla započata v balíčku inicializovaném se stejnou `scope` proměnnou.

{% hint style="success" %}
*Jazyk se určuje:*<br>

1. *podle owidget.init - parametr language*
2. *když je prázdný tak podle jazyka stránky (header language - F12 - Elements)*
3. *když není určený, pak rozhoduje jazyk prohlížeče*
   {% endhint %}

### `connectToServer`

Nahraje konfiguraci ze serveru a spustí sledování stavu skupin operátorů.

#### Syntaxe

`owidget.connectToServer();`

### `setAppEventCallback`

Nastaví funkci zpětného volání pro sledování definovaných událostí.

#### Syntaxe

`owidget.setAppEventCallback(callback);`

#### Parametry

* `callback` Funkce zpětného volání: `function (e) { }`. Funkce bude zavolána pokaždé, když nastane jedna z definovaných událostí. Parametr funkce `e` bude obsahovat strukturu popisující událost s prvky:
  * `type` Typ události.

#### Typy událostí

* `chatWindowOpen` Okno chatu otevřeno.
* `chatWindowClosed` Okno chatu zavřeno.
* `chatSessionCreated` Klient čeká na operátora.
* `chatSessionStarted` Začalo sezení s operátorem.
* `chatSessionEnded` Sezení skončilo.

### `setStatusUpdateCallback`

Nastaví funkci zpětného volání pro sledování stavu tlačítka.

#### Syntaxe

`owidget.setStatusUpdateCallback(callback);`

#### Parametry

* `callback` Funkce zpětného volání: `function (code) { }`. Funkce bude zavolána pokaždé, když se změní stav tlačítka. Parametr `code` nabývá jedné ze tří popsaných hodnot.

#### Kódy stavu tlačítka

* `0` tlačítko je „offline“
* `1` tlačítko je „online“
* `2` tlačítko je „busy“

### `setCustomNumberNormalization`

Nastaví vlastní funkci na normalizaci telefonního čísla

#### Syntaxe

`owidget.setCustomNumberNormalization(callback);`

#### Parametry

* `callback` Funkce zpětného volání: `function (phoneNumber) { }`. Funkce nahradí výchozí funkci pro normalizaci telefonního čísla

#### Očekávané návratové hodnoty

* `null` Pokud je číslo v nevalidním formátu, má funkce vrátit null
* `Normalizované číslo` Pokud je zadané číslo ve správném formátu vrací se string s telefonním číslem v mezinárodním formátu např. +420 777 666 555 i pokud byl vstup pouze 777 666 555
