---
title: "Ieguliet tīmekļa logrīku"
description: "Pievienojiet balss aģentu savai mārketinga vai atbalsta vietnei ar vienu skripta tagu — apmeklētāji var ar to sarunāties tieši pārlūkprogrammā, un tālruņa numurs nav nepieciešams."
---

Tīmekļa logrīks nodrošina jūsu vietnes apmeklētājiem sarunu ar balss aģentu, kurai var sākt ar klikšķi, izmantojot pārlūkprogrammas mikrofonu. Tā ir atsevišķa JavaScript / React SDK ar savu [SDK atsauci](/lv/widget/overview) — šajā ceļvedī galvenā uzmanība pievērsta ThunderPhone puses iestatīšanai, kas logrīkam ir nepieciešama.

<Note>
  To visu varat izdarīt bez cURL: informācijas paneļa lapā **Tīmekļa logrīki**
  (`/dashboard/web-widgets`) var izveidot logrīku, iestatīt tā režīmu
  un aģentu, pārvaldīt atļautos domēnus un saņemt iegulšanas fragmentu.
</Note>

## Priekšnosacījumi

<Steps>
  <Step title="Izveidojiet aģentu">
    Balss aģents, kura uzvedne un balss darbinās logrīka sesiju. Iestatiet
    `widget_enabled: true` (noklusējums).
  </Step>
  <Step title="Izvēlieties maršrutēšanas režīmu">
    - `mode="agent"` — viens statisks aģents katrai atslēgai. Vienkāršākais risinājums.
    - `mode="webhook"` — jūsu serveris izvēlas aģentu katram apmeklētājam, izmantojot
      [`web.incoming` tīmekļa aizķeri](/lv/webhooks/call-incoming). Izmantojiet šo režīmu
      pieteikušamies lietotājiem, A/B testiem vai maršrutēšanai katrai lapai.
  </Step>
  <Step title="Norādiet atļautos domēnus">
    Norādiet katru resursdatora nosaukumu, kurā tiks iegults logrīks. Pārlūkprogrammas ar
    katru sesijas pieprasījumu nosūta lapas izcelsmi, tāpēc šis saraksts neļauj jūsu atslēgai
    darboties, ja kāds to nokopē uz citu vietni. Tā nav autentifikācija: skripts ārpus
    pārlūkprogrammas var nosūtīt jebkuru `Origin` galveni. `localhost` produkcijas vidē netiek
    atļauts automātiski; lai lokāli testētu ar produkcijas API, pievienojiet `localhost`
    sarakstam.
  </Step>
  <Step title="Izvēlieties pārlūkprogrammas pārrakstīšanas iestatījumus">
    Izlemiet, kurus sesijas iestatījumus jūsu lapa drīkst nosūtīt. Jaunas atslēgas
    nepieņem nevienu; skatiet [Pārlūkprogrammas pārrakstīšanas iestatījumi](#browser-overrides).
  </Step>
</Steps>

## Izveidojiet publicējamu atslēgu

<CodeGroup>
```bash Static agent
curl -X POST https://api.thunderphone.com/v1/publishable-key \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":            "Marketing site (prod)",
    "mode":            "agent",
    "agent_id":        12,
    "allowed_domains": ["example.com", "*.example.com"],
    "allowed_overrides": ["context"]
  }'
```

```bash Dynamic via webhook
curl -X POST https://api.thunderphone.com/v1/publishable-key \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":            "Support (dynamic)",
    "mode":            "webhook",
    "webhook_url":     "https://example.com/thunderphone/widget-hook",
    "allowed_domains": ["support.example.com"]
  }'
```
</CodeGroup>

Atbildē ir iekļauta `key`, kas sākas ar `pk_live_...`. **Publicējamās
atslēgas pēc būtības ir publiskas** — tās var droši iekļaut jūsu priekšgala komplektā.
Visu lauku aprakstu skatiet [publicējamo atslēgu atsaucē](/api-reference/publishable-keys).

<Warning>
  `allowed_domains` jāsatur vismaz viens ieraksts. `*.example.com`
  atbilst apakšdomēniem (piemēram, `api.example.com`), bet **neatbilst**
  pamata domēnam. Vienkāršas aizstājējzīmes, piemēram, `*` vai `*.*`, tiek noraidītas.
</Warning>

## Pievienojiet logrīku savai vietnei

Trīs integrācijas iespējas ir aprakstītas
[logrīka SDK dokumentācijā](/lv/widget/overview):

<CardGroup cols={3}>
  <Card title="React komponents" icon="react" href="/lv/widget/react">
    `<ThunderPhoneWidget publishableKey="pk_live_..." />`.
  </Card>
  <Card title="Headless āķis" icon="circle-nodes" href="/lv/widget/headless-hook">
    `useThunderPhone()` pielāgotām lietotāja saskarnēm.
  </Card>
  <Card title="CDN skripta tags" icon="code" href="/lv/widget/cdn-script-tag">
    `ThunderPhone.mount({...})` vietnēm bez komplektētāja.
  </Card>
</CardGroup>

Visas trīs iespējas pieņem vienu un to pašu `publishableKey` un atveido mikrofona pogu
kopā ar audio elementu zvana laikā.

## Pārlūkprogrammas pārrakstījumi

Logrīks no lapas var nosūtīt četrus katras sesijas iestatījumus:

| Iestatījums | Logrīka atribūts | Ko tas maina |
|---------|-------------|-----------------|
| `context` | `context` | Teksts no lapas, kas kā atsauce tiek pievienots aģenta uzvednei |
| `variables` | nav (tikai neapstrādātam `POST /v1/widget/session`) | Vērtības `{{variable}}` vietturiem uzvednē |
| `voice` | `voice` | Aģenta balss šai sesijai |
| `language` | `language` | Valoda, kurā sesija sākas |

Jūsu publicējamā atslēga ir publiska, tāpēc ikviens, kam tā ir, var nosūtīt šos
iestatījumus, arī no skripta, kas imitē jūsu domēnu. Tāpēc katrs no tiem pēc
noklusējuma ir izslēgts, līdz to atļaujat atslēgai: atzīmējiet to sadaļā **Pārlūka
pārrakstīšanas** , kad informācijas panelī veidojat vai rediģējat logrīku, vai iestatiet
`allowed_overrides`, izmantojot
[Publicējamo atslēgu API](/api-reference/publishable-keys). Atļaujiet tikai to,
ko jūsu lapa faktiski nosūta.

Sesijas pieprasījums, kurā ir iestatījums, ko atslēga neatļauj, neizdodas
ar `400` un norāda šo iestatījumu:

```json
{
  "error": "override_not_allowed",
  "fields": ["voice"],
  "message": "This publishable key does not allow the browser to set `voice`. ..."
}
```

Pārbaude tiek veikta abos režīmos. Tīmekļa aizķeres režīmā atļautais iestatījums
tiek arī pārsūtīts uz jūsu `web.incoming` tīmekļa aizķeri (`context` tiek saņemts kā
`website_context`). Atslēgas, kas izveidotas pirms šī iestatījuma ieviešanas, atļauj
visus četrus, tādēļ esošie iegulumi turpina darboties; izslēdziet to, ko neizmantojat.

Logrīka `context` tiek saīsināts līdz 12 000 rakstzīmēm (aptuveni 3 400
tipiska angļu teksta marķieriem) un tiek ieskaitīts
[uzcenojumā par uzvednes lielumu](/lv/guides/billing-and-topups).
Aģentam tiek norādīts to uzskatīt par lapas saturu, nevis par norādījumiem.

## Logrīka režīma tīmekļa aizķeres

Ja `mode="webhook"`, ThunderPhone katras sesijas sākumā izsauc jūsu `webhook_url`
ar `web.incoming` kravumu. Atgrieziet balss aģenta konfigurāciju, kuru vēlaties
palaist konkrētajam apmeklētājam — tā izmanto to pašu
[atbildes shēmu](/lv/webhooks/call-incoming) kā tālruņa zvani:

```json
{
  "prompt":  "You are a VIP concierge for Jane Doe.",
  "voice":   "john",
  "product": "storm-base",
  "tools":   [ /* per-customer tools */ ]
}
```

Uzvednē varat iekļaut kontekstu no savas sesijas (kuru klientu lietotājs apskata,
kurā lapā viņš atrodas) un mainīt aģentus katrai ieviešanai.

## Pārraugiet sesijas

Logrīka sesijas tiek rādītas
[`GET /v1/calls`](/api-reference/calls#list-calls) ar
`direction="widget"` — ar tādu pašu transkriptu, ierakstu, vērtēšanu un
norēķiniem kā tālruņa zvaniem. Filtrējiet pēc `direction`, lai izveidotu tikai logrīka
informācijas paneli.

---

## Nākamās darbības

<CardGroup cols={2}>
  <Card title="Logrīka SDK atsauce" icon="window-maximize" href="/lv/widget/overview">
    React / hook / CDN integrācijas informācija.
  </Card>
  <Card title="Dinamiska konfigurācija katram zvanam" icon="bolt" href="/lv/guides/dynamic-call-config">
    Pilnībā ieviesiet `mode="webhook"` plūsmu.
  </Card>
  <Card title="Publicējamo atslēgu atsauce" icon="key" href="/api-reference/publishable-keys">
    Katrs atslēgas resursa lauks.
  </Card>
  <Card title="Mikrofona sesiju API" icon="microphone" href="/api-reference/mic-sessions">
    Izlaidiet logrīku; pielāgotām lietotāja saskarnēm izmantojiet LiveKit tieši.
  </Card>
</CardGroup>
