---
title: "CDN / Script Tag"
description: "Pievienojiet ThunderPhone balss logrīku jebkurai tīmekļa vietnei bez pakotņu veidotāja"
---

CDN būvējums iekšēji ietver React, tāpēc varat izmantot logrīku statiskās vietnēs, WordPress, Webflow vai jebkurā lapā, kur varat pievienot HTML. Nav nepieciešams npm, būvētājs vai ietvars.

## CDN URL

<CodeGroup>
```html Latest (recommended)
<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
```

```html Pinned version
<!-- Each stable release also publishes an immutable /widget/vX.Y.Z/ path
     matching the @thunderphone/widget npm version (v1.1.2 at the time of
     writing). If you pin, you own updating the URL for new releases. -->
<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/v1.1.2/style.css" />
<script src="https://cdn.thunderphone.com/widget/v1.1.2/widget.js"></script>
```
</CodeGroup>

<Tip>
  URL ar `latest` ir tie, ko ģenerē informācijas paneļa iegulšanas koda fragmentu ģenerators. Tie tiek kešoti 5 minūtes un automātiski saņem jaunus stabilos laidienus. Piespraustie ceļi `/widget/vX.Y.Z/` ir nemaināmi un tiek kešoti ilgtermiņā -- ja piespraužat versiju, saskaņojiet to ar `@thunderphone/widget` npm laidienu, pret kuru izstrādājat.
</Tip>

---

## Pamatlietojums

```html
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
</head>
<body>

  <div id="thunderphone"></div>

  <script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
  <script>
    ThunderPhone.mount({
      element: '#thunderphone',
      publishableKey: 'pk_live_your_publishable_key',
    })
  </script>

</body>
</html>
```

Logrīks tiek pievienots mērķa elementam un tiek attēlots kā **fiksētas pozīcijas josla skata apgabala stūrī** (noklusējums ir `bottom-right`, ko nosaka opcija `position`). Pievienošanas elements ir tikai React saknes elements -- tā atrašanās vieta lapā neietekmē vietu, kur tiek parādīts logrīks.

---

## Pievienošanas opcijas

`ThunderPhone.mount()` pieņem tās pašas opcijas kā React komponents, kā arī rekvizītu `element`:

| Opcija | Tips | Obligāts | Noklusējums | Apraksts |
|--------|------|----------|-------------|----------|
| `element` | `string \| HTMLElement` | Jā | -- | CSS selektors (piemēram, `'#thunderphone'`) vai DOM elementa atsauce. |
| `publishableKey` | `string` | Jā | -- | Publicējamā API atslēga (`pk_live_...`). Balss aģents tiek automātiski noteikts pēc atslēgas logrīka konfigurācijas. |
| `theme` | `'light' \| 'dark'` | Nē | `'light'` | Krāsu shēma. |
| `primaryColor` | `string` | Nē | `'#000000'` (gaiša) / `'#ffffff'` (tumša) | Akcenta krāsai izmantota CSS krāsas virkne. |
| `title` | `string` | Nē | `'Voice assistant'` | Logrīka joslā rādāmais teksts. |
| `position` | `'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left'` | Nē | `'bottom-right'` | Fiksēta pozīcija skatvietā. |
| `apiBase` | `string` | Nē | `'https://api.thunderphone.com/v1'` | API bāzes URL pārrakstīšana. |
| `language` | `string` | Nē | -- | Valodas pārrakstīšana katrai sesijai — valodas kods vai lokalizācija, piemēram, `en`, `es` vai `fr-FR`. Ja nav iestatīta, tiek izmantota balss aģenta konfigurētā valoda. Nepieciešams `language` atslēgas [pārlūka pārrakstījumos](/lv/guides/embed-web-widget). |
| `voice` | `string` | Nē | -- | Balss pārrakstīšana katrai sesijai — balss nosaukums, piemēram, `maria`. Ja nav iestatīta, tiek izmantota balss aģenta konfigurētā balss. Nepieciešams `voice` atslēgas [pārlūka pārrakstījumos](/lv/guides/embed-web-widget). |
| `context` | `string` | Nē | -- | Balss aģentam nodots faktiskais lapas vai vietnes konteksts katrai sesijai. Servera pusē tiek saīsināts līdz 12 000 rakstzīmēm. Nepieciešams `context` atslēgas [pārlūka pārrakstījumos](/lv/guides/embed-web-widget). |
| `onConnect` | `() => void` | Nē | -- | Tiek izsaukts, kad balss sesija tiek savienota. |
| `onDisconnect` | `() => void` | Nē | -- | Tiek izsaukts, kad sesija beidzas. |
| `onError` | `(error) => void` | Nē | -- | Tiek izsaukts kļūdu gadījumā. Kļūdai ir lauki `error` (kods) un `message`. |
| `ringtone` | `boolean \| string` | Nē | `false` | Savienojuma izveides laikā atskaņot zvana signālu. `true` noklusējuma zvana signālam vai URL virkne pielāgotam audio. |

---

## Tīrīšana

`ThunderPhone.mount()` atgriež logrīka instanci ar tīrīšanas metodēm:

```html
<script>
  var widget = ThunderPhone.mount({
    element: '#thunderphone',
    publishableKey: 'pk_live_your_publishable_key',
  })

  // Later, when you want to remove the widget:
  widget.unmount()

  // Or equivalently:
  widget.destroy()
</script>
```

Gan `unmount()`, gan `destroy()` dara vienu un to pašu — tās atvieno jebkuru aktīvu balss sesiju un noņem logrīku no DOM. Izmantojiet to, kura jūsu kodā ir saprotamāka.

<Note>
  Vienmēr notīriet logrīku, pārejot uz citu skatu vienas lapas lietojumprogrammās vai noņemot ietverošo elementu. Tas nodrošina, ka aktīvās balss sesijas tiek pareizi atvienotas.
</Note>

---

## Piemēri

### Tumšais motīvs ar pielāgotu krāsu

```html
<div id="thunderphone"></div>

<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
<script>
  ThunderPhone.mount({
    element: '#thunderphone',
    publishableKey: 'pk_live_your_publishable_key',
    theme: 'dark',
    primaryColor: '#8b5cf6',
    title: 'Talk to our AI',
  })
</script>
```

### Pielāgota pozīcija

```html
<div id="thunderphone"></div>

<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
<script>
  ThunderPhone.mount({
    element: '#thunderphone',
    publishableKey: 'pk_live_your_publishable_key',
    position: 'bottom-left',
  })
</script>
```

### Ar notikumu atzvaniem

```html
<div id="thunderphone"></div>

<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
<script>
  ThunderPhone.mount({
    element: '#thunderphone',
    publishableKey: 'pk_live_your_publishable_key',
    onConnect: function () {
      console.log('Call started')
    },
    onDisconnect: function () {
      console.log('Call ended')
    },
    onError: function (error) {
      console.error('Widget error:', error.error, error.message)
    },
  })
</script>
```

### Ar zvana signālu

```html
<div id="thunderphone"></div>

<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
<script>
  ThunderPhone.mount({
    element: '#thunderphone',
    publishableKey: 'pk_live_your_publishable_key',
    ringtone: true, // or a custom URL: 'https://example.com/ringtone.mp3'
  })
</script>
```

### Izmantojot DOM elementa atsauci

```html
<div id="thunderphone"></div>

<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>
<script>
  var container = document.getElementById('thunderphone')

  ThunderPhone.mount({
    element: container,
    publishableKey: 'pk_live_your_publishable_key',
  })
</script>
```

### WordPress / CMS integrācija

Pievienojiet šo pielāgota HTML blokam vai savas tēmas kājenei:

```html
<link rel="stylesheet" href="https://cdn.thunderphone.com/widget/latest/style.css" />
<script src="https://cdn.thunderphone.com/widget/latest/widget.js"></script>

<div id="thunderphone-widget"></div>
<script>
  ThunderPhone.mount({
    element: '#thunderphone-widget',
    publishableKey: 'pk_live_your_publishable_key',
  })
</script>
```

<Tip>
  `<div>` var atrasties jebkur — tas ir tikai pievienošanas punkts. Pats logrīks tiek attēlots kā fiksēts pārklājums skata loga stūrī (to nosaka opcija `position`) un neiekļaujas apkārtējā satura plūsmā.
</Tip>

---

## Problēmu novēršana

<AccordionGroup>
  <Accordion title="Logrīks netiek parādīts">
    Pārliecinieties, ka ir ielādēti gan CSS, gan JS faili. Pārbaudiet pārlūkprogrammas konsoli, vai nav tīkla kļūdu. Pirms `ThunderPhone.mount()` izsaukšanas pārbaudiet, vai mērķa elements pastāv DOM.
  </Accordion>

  <Accordion title="ThunderPhone nav definēts">
    Skripts vēl nav ielādēts. Pārliecinieties, ka `<script>` tags failam `widget.js` atrodas pirms jūsu montēšanas izsaukuma, vai ietveriet montēšanas izsaukumu `DOMContentLoaded` klausītājā.
  </Accordion>

  <Accordion title="Domēns nav atļauts">
    Pievienojiet savu domēnu logrīka atļauto domēnu sarakstam lapā **Tīmekļa logrīki** vietnē [app.thunderphone.com](https://app.thunderphone.com). Produkcijas vidē `localhost` netiek atļauts automātiski; pievienojiet to sarakstam, lai testētu lokāli.
  </Accordion>
</AccordionGroup>

---

## Nākamās darbības

<CardGroup cols={2}>
  <Card title="Stilizēšana" icon="palette" href="/lv/widget/styling">
    Pielāgojiet logrīka izskatu, izmantojot CSS pielāgotās īpašības.
  </Card>
  <Card title="React komponents" icon="react" href="/lv/widget/react">
    Izmantojat React? Komponenta integrācija ir vienkāršāka.
  </Card>
</CardGroup>
