Как да добавите Asyntai AI чатбот към Sanity
Ръководство стъпка по стъпка за уебсайтове, задвижвани от Sanity
Важно: Sanity е headless CMS, който доставя съдържание чрез API-та. Кодът на чатбота трябва да бъде добавен към вашето фронтенд приложение (Next.js, Gatsby, Nuxt, обикновен HTML и др.), а не към самото Sanity Studio.
Стъпка 1: Вземете вашия код за вграждане
Първо отидете на вашето Табло за управление на Asyntai и превъртете надолу до секцията "Код за вграждане". Копирайте уникалния си код за вграждане, който ще изглежда така:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
Забележка: Кодът по-горе е само пример. Трябва да копирате собствения си уникален код за вграждане от вашето Табло за управление, тъй като съдържа вашия личен ID на уиджета.
Стъпка 2: Добавете към Next.js Frontend (Най-често срещано)
Ако вашият сайт, задвижван от Sanity, използва Next.js (най-честата комбинация), добавете чатбота към основния си layout:
App Router (Next.js 13+)
Отворете app/layout.js (или app/layout.tsx) и добавете компонента Script:
import Script from 'next/script'
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
<Script
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
strategy="afterInteractive"
/>
</body>
</html>
)
}
Pages Router
Ако използвате Pages Router, отворете pages/_app.js:
import Script from 'next/script'
export default function MyApp({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
<Script
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
strategy="afterInteractive"
/>
</>
)
}
Съвет: Опцията strategy="afterInteractive" гарантира, че чатботът се зарежда след като страницата стане интерактивна, осигурявайки най-добро потребителско изживяване без да влияе на производителността при зареждане на страницата.
Алтернативен метод 1: Gatsby Frontend
Ако вашият Sanity сайт използва Gatsby, добавете скрипта чрез gatsby-ssr.js:
// gatsby-ssr.js
import React from 'react'
export const onRenderBody = ({ setPostBodyComponents }) => {
setPostBodyComponents([
<script
key="asyntai"
async
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
/>
]);
};
Забележка: Трябва също да добавите същия код в gatsby-browser.js, ако искате уиджетът да се запази при клиентска навигация. Алтернативно, добавете го към основния layout компонент.
Алтернативен метод 2: Nuxt.js Frontend
Ако вашият Sanity сайт използва Nuxt.js, добавете скрипта в nuxt.config.js (или nuxt.config.ts):
// nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
script: [
{
src: 'https://asyntai.com/static/js/chat-widget.js',
'data-asyntai-id': 'YOUR_WIDGET_ID',
async: true
}
]
}
}
})
Алтернативен метод 3: Обикновен HTML фронтенд
Ако вашият сайт, задвижван от Sanity, използва обикновен HTML или генератор на статични сайтове, ползващ Sanity API:
- Отворете основния си HTML файл (обикновено index.html)
- Добавете кода за вграждане точно преди затварящия таг </body>:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
Алтернативен метод 4: React (Vite или Create React App)
Ако вашият фронтенд използва React с Vite или Create React App:
Добавете скрипта в index.html в директорията public/:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... existing head content ... -->
</head>
<body>
<div id="root"></div>
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
Или използвайте useEffect хук в основния си компонент:
// App.jsx or App.tsx
import { useEffect } from 'react';
function App() {
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://asyntai.com/static/js/chat-widget.js';
script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID');
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
};
}, []);
return (
// ... your app content
);
}
Стъпка 3: Разгърнете и проверете
След като добавите кода към вашето фронтенд приложение:
- Разгърнете фронтенда си при вашия хостинг доставчик (Vercel, Netlify и др.)
- Отворете живия си сайт в нов раздел на браузъра
- Трябва да видите бутона на чат уиджета в долния десен ъгъл
- Щракнете върху него, за да се уверите, че се отваря и функционира правилно
Не виждате уиджета? Уверете се, че сте заменили YOUR_WIDGET_ID с вашия действителен идентификатор на уиджет от таблото за управление. Проверете дали скриптът се зарежда в раздела Network на браузъра (F12 > Network). Потвърдете, че фронтендът е бил деплойнат отново след добавяне на кода. За Next.js се уверете, че използвате компонента Script от next/script, а не обикновен <script> таг. Изчистете кеша на браузъра или тествайте в режим инкогнито.
Weebly