Cum să adăugați Chatbot-ul AI Asyntai în DatoCMS
Ghid pas cu pas pentru site-urile bazate pe DatoCMS
CMS Headless: DatoCMS este un CMS headless care livrează conținut prin API-uri. Codul chatbot-ului trebuie adăugat în aplicația dvs. frontend (Next.js, Gatsby, Nuxt, etc.), nu în tabloul de bord DatoCMS.
Pasul 1: Obțineți codul de încorporare
Mai întâi, accesați panoul de control Asyntai și derulați în jos până la secțiunea "Cod de integrare". Copiați codul dvs. unic de integrare, care va arăta astfel:
<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>
Notă: Codul de mai sus este doar un exemplu. Trebuie să copiați propriul cod unic de încorporare din Tabloul de bord, deoarece conține ID-ul personal al widgetului dvs.
Pasul 2: Adăugați în frontend-ul Next.js (Cel mai frecvent)
Next.js este cel mai popular framework frontend utilizat cu DatoCMS. Adăugați chatbot-ul folosind componenta Script:
App Router (app/layout.tsx):
- Deschideți fișierul de layout rădăcină:
app/layout.tsx - Importați componenta Script și adăugați chatbot-ul:
import Script from 'next/script'
export default function RootLayout({ children }) {
return (
<html>
<body>
{children}
<Script
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
strategy="afterInteractive"
/>
</body>
</html>
)
} - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului dvs. - Salvați fișierul și reporniți serverul de dezvoltare
Pages Router (pages/_app.tsx):
- Deschideți fișierul
pages/_app.tsx - Adăugați componenta Script:
import Script from 'next/script'
import type { AppProps } from 'next/app'
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<Script
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
strategy="afterInteractive"
/>
</>
)
}
Sfat: Utilizarea strategy="afterInteractive" asigură că chatbot-ul se încarcă imediat după ce pagina devine interactivă, oferind un echilibru bun între performanță și disponibilitate.
Metoda alternativă 1: Frontend Gatsby
Pentru site-urile Gatsby care preiau conținut din DatoCMS prin gatsby-source-datocms:
- Creați sau editați
gatsby-ssr.jsîn rădăcina proiectului:import React from 'react'
export const onRenderBody = ({ setPostBodyComponents }) => {
setPostBodyComponents([
<script
key="asyntai-chatbot"
async
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
/>
])
} - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului dvs. - Reporniți serverul de dezvoltare Gatsby
Metoda alternativă 2: Frontend Nuxt.js
Pentru aplicații Nuxt.js care consumă conținut DatoCMS:
- Adăugați în
nuxt.config.ts:export default defineNuxtConfig({
app: {
head: {
script: [
{
src: 'https://asyntai.com/static/js/chat-widget.js',
async: true,
'data-asyntai-id': 'YOUR_WIDGET_ID'
}
]
}
}
}) - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului dvs. - Reporniți serverul de dezvoltare Nuxt
Metoda alternativă 3: HTML simplu / Site static
Dacă utilizați API-ul Content Delivery al DatoCMS cu un site HTML static sau un generator de site-uri statice:
- Adăugați codul de încorporare în fișierul HTML înainte de eticheta de închidere
</body>:<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> - Înlocuiți
YOUR_WIDGET_IDcu ID-ul real al widget-ului dvs. - Salvați fișierul și încărcați-l pe hostingul dvs.
Metoda alternativă 4: React (Vite/CRA)
Pentru aplicații React standard (Create React App, Vite) care consumă API-ul DatoCMS:
Opțiunea A: Adăugați în public/index.html
- Deschideți fișierul
public/index.html(CRA) sauindex.html(Vite) - Adăugați codul de încorporare înainte de eticheta de închidere
</body><script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> - Salvați fișierul
Opțiunea B: useEffect în componenta rădăcină
- Creați o componentă chatbot sau adăugați în componenta rădăcină:
// components/Chatbot.jsx
import { useEffect } from 'react'
export default function Chatbot() {
useEffect(() => {
const script = document.createElement('script')
script.src = 'https://asyntai.com/static/js/chat-widget.js'
script.async = true
script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID')
document.body.appendChild(script)
return () => document.body.removeChild(script)
}, [])
return null
} - Importați și randați componenta în
App.jsxsau layout-ul rădăcină
Pasul 3: Implementați și verificați
După ce ați adăugat codul chatbot-ului pe site-ul dvs. bazat pe DatoCMS, implementați sau rulați serverul de dezvoltare. Vizitați site-ul dvs. într-o filă nouă de browser sau într-o fereastră incognito. Ar trebui să vedeți butonul widget-ului de chat în colțul din dreapta jos. Faceți clic pe el pentru a vă asigura că se deschide și funcționează corect.
Nu vedeți widgetul? Asigurați-vă că ați adăugat scriptul în fișierul corect pentru framework-ul dvs. Verificați consola de dezvoltare a browserului pentru eventuale erori. Dacă utilizați randare pe server, asigurați-vă că scriptul rulează pe partea de client. Încercați să goliți cache-ul browserului sau să vizualizați într-o fereastră incognito.
Variabile de mediu: Pentru o securitate și flexibilitate mai bune, luați în considerare stocarea ID-ului widget-ului într-o variabilă de mediu (de ex., NEXT_PUBLIC_ASYNTAI_ID pentru Next.js sau VITE_ASYNTAI_ID pentru Vite) în loc să îl codificați direct.
Weebly