Siirry pääsisältöön

Drupal-chatbotmoduuli

Käytä virallista ChattyBoxin Drupal-moduulia, kun haluat Composerin hallitseman asennuksen Drupal 10- tai Drupal 11 -sivustolle. Paikallisesti tarkastettu 0.1.0-moduuli liittää isännöidyn widget-loaderinsa kelvollisiin ei-hallinnollisiin pyyntöihin, joiden Drupalin pyyntömuoto on HTML, ja käyttää kovakoodattua API-päätepistettä. Tämä opas kattaa käyttöönoton. Drupalin AI-chatbotmoduulin sivu esittelee tuotteen ja arviointiprosessin.

Ennen asennusta​

Suorita ensin Aloittaminen -prosessi: yhdistä julkinen Drupal-URL-osoitteesi, tarkista indeksoidut sivut ja varmista edustavat vastaukset kohdassa Testaa chatbottia. Tarkista kohdassa Asenna → Avaimet ja verkkotunnukset olemassa oleva julkinen widget-avain tai luo uusi; tarkista avaimen origin-asetukset kummassakin tapauksessa. Valitse sopiva avain kohdassa Asenna → Verkkosivuston asennus ja kopioi data-api-key-arvo asennuskatkelmasta.

Composer-asennus​

Tässä asennuksessa julkista GitHub-repositoriota käytetään Composerin VCS-lähteenä. Lisää alla oleva repositoriomääritys ennen composer require -komennon suorittamista; tarkista paketin ajantasainen saatavuus ja tagit ennen asennusta.

Lisää julkinen GitHub-repositorio sitä käyttävän Drupal-projektin juuren composer.json-tiedostoon:

{
"repositories": {
"chattybox-drupal": {
"type": "vcs",
"url": "https://github.com/OpenStaticFish/chattybox-drupal.git"
}
}
}

Jos projektissa on jo repositories-osio, yhdistä chattybox-drupal-merkintä siihen. Asenna sitten moduuli:

composer require openstaticfish/chattybox-drupal:^0.1

Paketti on määritelty drupal-module-paketiksi ja se vaatii Drupalin ^10 || ^11. Moduulin ilmoitettu PHP-vähimmäisversio on 8.1, mutta Drupal-versiosi voi vaatia uudempaa PHP-versiota. Drupalin tavalliset Composer-asennuspolut sijoittavat sen usein hakemistoon web/modules/contrib/, mutta projektikohtaiset hakemistomääritykset voivat poiketa tästä. ^0.1 on versionrajoite, ei tarkka versiolukitus: Composer ratkaisee ja lukitsee version. Käytä tarkkaa versiota, jos tarvitset toistettavan asennuksen.

Tutustu julkiseen Drupal-moduulin lähdekoodiin ja tagattuihin muutoksiin ennen päivittämistä; tarkista, mikä päivitysmekanismi sopii asennukseesi.

Voit testata nykyistä kehityshaaraa sen sijaan näin:

composer require openstaticfish/chattybox-drupal:dev-main

Ota käyttöön ja määritä​

  1. Ota ChattyBox käyttöön kohdassa Extend tai suorita drush en chattybox.
  2. Avaa Configuration > Web services > ChattyBox.
  3. Liitä vain verkkosivuston asennuskatkelmasta saatava widgetin julkinen API-avain.
  4. Säilytä isännöidyn widget-komentosarjan URL-osoite, ellei ChattyBox ole antanut esikatselun tai itse isännöidyn loaderin URL-osoitetta.
  5. Jätä kieliohitus tyhjäksi, jotta projekti noudattaa kielikäytäntöään, tai anna tuettu pienaakkosinen koodi, kuten en, fr tai de. Tuettu ohitus saa etusijan vain, jos projekti sallii skriptin tekemät ohitukset. Nykyisen lähdekoodin mukaisessa isännöidyssä widgetissä v16 automaattinen tila kokeilee ensin sivun kieltä, sitten selaimen kieliä ja lopuksi määritettyä oletuskieltä; tukemattomat kielet ohitetaan, ja jos yksikään ehdokas ei ole tuettu, käytetään englantia. Kiinteä tila käyttää projektin oletuskieltä, jos sitä tuetaan, muuten englantia. Varmista käytössä olevan loaderin versio ennen kuin luotat tähän erikseen versioituun toimintaan.
  6. Ota chatbot käyttöön ja tallenna asetukset.

Hallintareiteillä ja pyynnöissä, joiden Drupalin pyyntömuoto ei ole HTML, tarkastettu moduuli ei liitä widget-loaderia. Se ei tarkista lopullisen vastauksen Content-Type-otsaketta eikä selvitä, onko frontend-sisältö yksityistä. Ehdot täyttävissä pyynnöissä se liittää julkisen avaimen, kovakoodatun API-päätepisteen, valinnaisen kielitunnisteen ja widget-loaderin Drupalin ilmoitetun kirjaston sekä drupalSettings-asetusten kautta.

Uudet asennukset ovat oletusarvoisesti poissa käytöstä, ja niissä avain sekä kieliohitus ovat tyhjiä. Asetuslomake löytyy osoitteesta /admin/config/services/chattybox, ja sen käyttö edellyttää administer chattybox configuration -käyttöoikeutta. Moduuli lataa widgetin; se ei indeksoi eikä synkronoi Drupal-sisältöä.

API-päätepiste on kovakoodattu tarkastettuun moduuliversioon; sitä ei päätellä avaimesta eikä päivitetä automaattisesti. Loader-URL:n muuttaminen ei muuta päätepistettä. Vertaa sitä verkkosivuston asennuskatkelmaan. Jos katkelma käyttää toista API-käyttöönottoa, käytä sen manuaalista widget-integraatiota ilman moduulia. Etäskriptin URL-osoitteen on käytettävä HTTPS-protokollaa (HTTP sallitaan vain paikallisille kehityspalvelimille).

Rajoittamattomat avaimet toimivat selaimen kaikista origineista; verkkosivustolle valmisteltu avain voi jo olla rajattu kyseisen sivuston originiin. Valinnaiset rajoitukset kohdassa Asenna → Avaimet ja verkkotunnukset edellyttävät täsmällistä skeemaa, isäntänimeä ja porttia jokaiselle sallitulle originille. Rajoitettu avain palauttaa 401-virheen Invalid API key, jos pyynnön määritetty origin puuttuu tai sitä ei sallita. Origin otetaan Origin-otsakkeesta tai sen puuttuessa Referer-otsakkeen originista. Origin-rajoitukset ovat lisäsuojausta, eivät kävijän todennusta.

Sulje muita reittejä pois​

Moduuli ohittaa hallintareitit automaattisesti. Tämä ei ole kaikkien frontend-reittien yksityisyystarkistus; sulje tarvittaessa kassa-, tili- ja jäsenyysreitit erikseen. Mukautettu moduuli voi poistaa widgetin käytöstä muilla julkisilla reiteillä hook_chattybox_load_widget_alter()-funktion avulla:

Alla oleva reitin nimi on esimerkki. Moduuli ei lisää hookin ratkaisulle cache-konteksteja eikä cache-tageja. Toteuta ja testaa sivustokohtainen välimuistin eriyttäminen ja mitätöinti jokaisen ehdon mukaan sekä widgetin liittämisen että liittämättä jättämisen tapauksessa Drupal- ja välikäsivälimuistikerroksissa. Poissulkeminen ei ole pääsynvalvontaraja.

/**
* Implements hook_chattybox_load_widget_alter().
*/
function mymodule_chattybox_load_widget_alter(&$should_load, $config, $route_match) {
if ('commerce_checkout.form' === $route_match->getRouteName()) {
$should_load = FALSE;
}
}

Manuaalinen varavaihtoehto​

Composer on suositeltu asennustapa. Jos Drupal-julkaisusi ei voi käyttää Composeria, kopioi moduuli hakemistoon web/modules/custom/chattybox tai muuhun mukautettujen moduulien hakemistoon, ota se käyttöön ja määritä se kohdassa Configuration > Web services > ChattyBox.

Älä liitä moduuliin ChattyBoxin hallintatunnuksia. Widgetin julkinen API-avain on tarkoitettu frontend-merkintään.

Käytä vain yhtä loaderia: älä ota moduulia käyttöön samanaikaisesti teeman katkelman, GTM-tagin tai SDK-asennuksen kanssa. Tarkastettu moduuli ohittaa loaderin lisäämisen, jos se löytää minkä tahansa merkityn script[data-chattybox-widget="true"]-elementin; se ei tarkista eikä määritä skriptiä uudelleen, eikä se tunnista merkitsemättömiä skriptejä.

Moduulin automaattinen loader ei tarkista suostumusta ennen widgetin alustamista. Jos suostumus vaaditaan ennen pyyntöjä, käytä suostumuksen huomioivaa integraatiota automaattisen loaderin sijaan. SPA-reittimuutoksissa tai suostumuksen peruuttamisen jälkeen estä lataus poissuljetuilla reiteillä ja pura alustettu widget aktiivisesti käytössä olevan loader-version tukemalla integraatiolla. Pelkkä widgetin piilottaminen tai skriptielementin poistaminen ei riitä. Alusta widget uudelleen vain, kun se on sallittua. Purkaminen ei voi perua pyyntöjä, jotka palvelin on jo käsitellyt.

Vahvistus​

Kun olet määrittänyt moduulin:

  • Avaa julkinen Drupal-sivu incognito-ikkunassa.
  • Varmista, että widgetin käynnistin näkyy kerran.
  • Esitä todellinen kävijän kysymys.
  • Varmista, että tuettu vastaus viittaa indeksoituihin julkisiin Drupal-sivuihin ja että tukematon kysymys käyttää varavastausta, jolla voi olla tyhjät lähteet.
  • Tarkista selaimen konsolista puuttuvat data-api-key- tai data-api-url-arvot ja avainvirheet.
  • Testaa sekä poissuljetut että mukaan otetut reitit, kun Drupal-, sivu- ja CDN-välimuistit ovat sekä kylmiä että lämpimiä. Rakenna asiaankuuluvat välimuistit uudelleen asetusten tai hookien muutosten jälkeen. Palvelinpuolen reittipoissulkeminen ei pura widgetiä, joka on jo ladattu asiakaspuolen navigoinnin aikana.

Jatka julkaisun tarkistuslistaan ennen chatbotin julkistamista.