Как да добавите Asyntai AI чатбот към PayloadCMS
Ръководство стъпка по стъпка за уебсайтове, задвижвани от PayloadCMS
Важно: PayloadCMS е headless CMS. Кодът на чатбота трябва да бъде добавен към вашето фронтенд приложение, а не към административния панел на Payload.
Стъпка 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 (Най-често срещано)
PayloadCMS обикновено използва Next.js като фронтенд рамка. Добавете чатбота към основния си layout:
App Router (Next.js 13+)
Отворете 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.tsx:
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: Персонализиран React фронтенд
Ако вашият PayloadCMS проект използва персонализиран React фронтенд вместо Next.js, можете да заредите чатбота динамично с useEffect хук:
// App.tsx or App.jsx
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
);
}
Забележка: Заменете YOUR_WIDGET_ID с вашия действителен идентификатор на уиджет от таблото за управление. Функцията за почистване в оператора return гарантира, че скриптът е премахнат, ако компонентът се демонтира.
Алтернативен метод 2: Използване на персонализирани компоненти на Payload (Само за административния панел)
Ако искате чатботът да се показва вътре в самия административен панел на Payload (за вътрешна поддръжка), можете да регистрирате персонализиран компонент в payload.config.ts:
// payload.config.ts
import { buildConfig } from 'payload/config';
export default buildConfig({
admin: {
components: {
afterDashboard: ['/components/AsyntaiChatbot'],
},
},
// ... rest of your config
})
След това създайте файла на компонента:
// components/AsyntaiChatbot.tsx
'use client'
import { useEffect } from 'react';
const AsyntaiChatbot = () => {
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 null;
};
export default AsyntaiChatbot;
Съвет: Този метод е само за добавяне на чатбота към административния панел на Payload. За вашия публичен уебсайт използвайте Стъпка 2 или Алтернативен метод 1 вместо това.
Алтернативен метод 3: Обикновен HTML/Статичен сайт
Ако вашият сайт, задвижван от PayloadCMS, използва обикновен HTML или статичен фронтенд, който ползва Payload API, добавете кода за вграждане директно в HTML-а си:
- Отворете основния си HTML файл (обикновено index.html)
- Добавете кода за вграждане точно преди затварящия таг </body>:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
Стъпка 3: Разгърнете и проверете
След като добавите кода към вашето фронтенд приложение:
- Разгърнете фронтенда си при вашия хостинг доставчик (Vercel, Netlify и др.)
- Отворете живия си сайт в нов раздел на браузъра
- Трябва да видите бутона на чат уиджета в долния десен ъгъл
- Щракнете върху него, за да се уверите, че се отваря и функционира правилно
Не виждате уиджета? Уверете се, че сте заменили YOUR_WIDGET_ID с вашия действителен идентификатор на уиджет от таблото за управление. Проверете дали скриптът се зарежда в раздела Network на браузъра (F12 > Network). Потвърдете, че фронтендът е бил деплойнат отново след добавяне на кода. За Next.js се уверете, че използвате компонента Script от next/script, а не обикновен <script> таг. Изчистете кеша на браузъра или тествайте в режим инкогнито.
Weebly