API ryšiai

Prijunkite savo išorinius API prie enuchat, kad DI ir taisyklės galėtų gauti realaus laiko duomenis iš jūsų sistemų.

Kaip tai veikia

API ryšiai leidžia integruoti enuchat su savo backend sistemomis — rezervavimo varikliais, CRM, užsakymų valdymu, atsargomis ir daugiau. Kai lankytojas užduoda klausimą, enuchat gali iškviesti jūsų API, kad gautų tikrus duomenis ir įtrauktų juos į atsakymą.

Eiga

  1. Sukonfigūruokite ryšį — jūsų API bazinis URL ir autentifikavimas
  2. Pridėkite galinius taškus — konkrečius API iškvietimus su kelio šablonais ir atsakymo atvaizdavimu
  3. Sukurkite taisyklę — DI ar statinę taisyklę su CALL_API veiksmu
  4. Lankytojas užduoda klausimą — taisyklė suveikia, iškviečia jūsų API, atvaizduoja atsakymą į sesijos kintamuosius
  5. DI atsako su tikrais duomenimis — sesijos kintamieji prieinami DI tiksliam atsakymui generuoti

Pavyzdys: viešbučio kambario prieinamumas

Lankytojas: "Ar 205 kambarys prieinamas kitą savaitę?"

DI taisyklė atitinka: "Kai lankytojas klausia apie kambario prieinamumą"

CALL_API veiksmas: GET https://api.hotel.com/rooms/205/availability

Atsakymas atvaizduotas: room_available = true, price = "120 €/naktis"

DI atsako: "205 kambarys prieinamas kitą savaitę už 120 €/naktį. Ar norite jį rezervuoti?"

Ryšio sąranka

Eikite į Nustatymai → API ryšiai savo skydelyje.

1. Sukurti ryšį

Ryšys atstovauja vieną išorinį API. Jums reikia:

LaukasAprašymasPavyzdys
PavadinimasŠio ryšio etiketėViešbučio rezervavimo API
Bazinis URLAPI šakninis URLhttps://api.hotel.com/v1
Autentifikavimo tipasKaip autentifikuotisBearer Token, OAuth2 ir t. t.

2. Autentifikavimo tipai

Nėra

Viešiems API, kuriems nereikia autentifikavimo.

API raktas

Siunčia statinį raktą kaip antraštę arba užklausos parametrą.

LaukasAprašymas
RaktasJūsų API rakto reikšmė
Antraštės pavadinimasNaudojama antraštė (numatyta: X-Api-Key)

Raktas siunčiamas kaip: X-Api-Key: your_key_here

Bearer Token

Siunčia statinį žetoną Authorization antraštėje.

Siunčiamas kaip: Authorization: Bearer your_token_here

Basic Auth

Siunčia naudotojo vardą ir slaptažodį, užkoduotus base64.

Siunčiamas kaip: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (kliento kredencialai)

Automatiškai gauna prieigos žetoną ir kešuoja jį iki galiojimo pabaigos. Geriausia šiuolaikiniams API kaip Salesforce, Google ar pasirinktiniams OAuth serveriams.

LaukasAprašymas
Žetono URLOAuth žetono galinis taškas (pvz., https://auth.example.com/oauth/token)
Kliento IDJūsų OAuth kliento ID
Kliento paslaptisJūsų OAuth kliento paslaptis
ApimtisTarpais atskirtos apimtys (pvz., read write)

enuchat automatiškai tvarko žetono gyvavimo ciklą — gauna pirmojo iškvietimo metu, kešuoja iki galiojimo pabaigos, prireikus atnaujina.

Saugumas: Visi kredencialai šifruojami nenaudojant, naudojant libsodium. Jie niekada neatskleidžiami API atsakymuose — tik maskuotos reikšmės rodomos skydelyje.

Galinių taškų konfigūravimas

Kiekvienas ryšys gali turėti kelis galinius taškus — konkrečius API iškvietimus, kuriuos norite atlikti.

LaukasAprašymasPavyzdys
PavadinimasŠio galinio taško etiketėPatikrinti prieinamumą
MetodasHTTP metodasGET, POST, PUT, DELETE
KeliasURL kelias (pridedamas prie bazinio URL). Naudokite {'{'}variable} dinaminėms reikšmėms/rooms/{'{'}roomId}/availability
Užklausos parametraiURL parametrai kaip rakto-vertės poros. Reikšmės palaiko {'{'}variable}date={'{'}checkIn}
Kūno šablonasJSON kūnas POST/PUT. Palaiko {'{'}variable} interpoliaciją{'{'}"guest": "{'{'}name}"}
Atsakymo atvaizdavimasAtvaizduokite JSON atsakymo laukus į sesijos kintamuosius naudojant tašką kaip skirtukądata.available → room_available
AprašymasKontekstas DI (kokius duomenis grąžina šis galinis taškas)Grąžina kambario prieinamumą ir kainas

Kintamųjų interpoliacija

Naudokite {'{'}variableName} keliuose, užklausos parametruose ir kūno šablonuose. Kintamieji kyla iš:

  • Sesijos kintamųjų — nustatytų ankstesnių taisyklių (SET_VARIABLE veiksmas)
  • Veiksmo parametrų — iš anksto užkoduotų CALL_API taisyklės veiksme

Atsakymo atvaizdavimas

Atvaizduokite JSON atsakymo laukus į sesijos kintamuosius naudodami tašką kaip skirtuką:

// API grąžina:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Atvaizdavimas:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

Atvaizduoti kintamieji saugomi kaip sesijos kintamieji pokalbyje ir prieinami DI atsakymams generuoti.

Naudojimas su taisyklėmis

API iškvietimus sukelia CALL_API veiksmas taisyklėse. Galite derinti juos su kitais veiksmais.

Receptas: užsakymo būsenos paieška

Ryšys: Užsakymų valdymo API — https://api.shop.com/v2 — Bearer Token

Galinis taškas: GET /orders/{'{'}orderId} → atvaizduoja data.statusorder_status, data.etadelivery_eta

Taisyklė (DI tipas): "Kai lankytojas klausia apie savo užsakymo būseną ar pristatymą"

Veiksmai:

  1. CALL_API → Užsakymo būsenos galinis taškas
  2. REPLY_AI → DI naudoja order_status ir delivery_eta, kad atsakytų

Rezultatas: Lankytojas: "Kur mano užsakymas #4521?" — DI: "Jūsų užsakymas #4521 šiuo metu siunčiamas ir turėtų atvykti iki ketvirtadienio."

Receptas: realaus laiko kainos

Ryšys: Kainų API — https://pricing.example.com — API raktas

Galinis taškas: GET /products/{'{'}productId}/price → atvaizduoja pricecurrent_price, currencyprice_currency

Taisyklė (statinė): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

Veiksmai:

  1. CALL_API → Kainų galinis taškas
  2. REPLY_TEXT → "Dabartinė kaina yra {'{'}current_price} {'{'}price_currency}."

Testavimas

Visada išbandykite savo ryšius ir galinius taškus prieš naudodami juos taisyklėse:

  • Testuoti ryšį — patikrina, ar autentifikavimas veikia (OAuth2: gauna žetoną)
  • Testuoti galinį tašką — atlieka tikrą API iškvietimą su pavyzdiniais kintamaisiais ir rodo atsakymą
  • Testuoti taisyklę (bandomasis paleidimas) — Taisyklių puslapyje išbandykite, ar taisyklė suveiktų ir kokie veiksmai įvyktų

Patarimas: Pradėkite testuodami ryšį, tada kiekvieną galinį tašką, tada visą taisyklę. Taip galite izoliuoti problemas kiekviename lygyje.

Saugumas

  • Šifravimas nenaudojant — visi kredencialai šifruojami naudojant libsodium prieš saugant
  • Niekada neatskleidžiama — API atsakymai niekada neįtraukia iššifruotų kredencialų, tik maskuotas reikšmes
  • SSRF apsauga — enuchat blokuoja iškvietimus į localhost, privačius IP ir vidinius kompiuterių vardus
  • Laiko limitas — išoriniai API iškvietimai turi 5 sekundžių laiko limitą, kad išvengtų pakibimo
  • OAuth2 žetono kešavimas — prieigos žetonai saugiai kešuojami ir automatiškai atnaujinami
  • Nuomininkų izoliacija — ryšiai yra apriboti jūsų nuomininkui, neprieinami kitiems

Pasiruošę prijungti savo API?

Pradėkite integruoti savo sistemas su enuchat šiandien.

Pradėti nemokamai