React i Next.js
Dodaj widżet agenta do aplikacji React i Next.js.
Zintegruj widżet agenta z aplikacjami React i Next.js za pomocą kilku linijek kodu.
Instalacja
Dodaj skrypt widżetu do swojej aplikacji React. Pobierz kod do osadzenia z Agent > Publikuj, a następnie dostosuj go do swojego frameworka.
Next.js (App Router)
Dodaj skrypt do głównego layoutu, korzystając z komponentu Script z Next.js:
// app/layout.tsx
import Script from 'next/script';
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>
{children}
{/* Get your src and data-chatbot values from Chatbot > Publish */}
<Script
src="YOUR_WIDGET_URL"
data-chatbot="YOUR_CHATBOT_ID"
strategy="afterInteractive"
/>
</body>
</html>
);
}
Next.js (Pages Router)
Dodaj do pliku _app.tsx lub _document.tsx:
// pages/_app.tsx
import Script from 'next/script';
import type { AppProps } from 'next/app';
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
{/* Get your src and data-chatbot values from Chatbot > Publish */}
<Script
src="YOUR_WIDGET_URL"
data-chatbot="YOUR_CHATBOT_ID"
strategy="afterInteractive"
/>
</>
);
}
Create React App
Dodaj do pliku public/index.html. Skopiuj swój kod do osadzenia z Agent > Publikuj:
<!DOCTYPE html> <html lang="en"> <head> <!-- ... --> </head> <body> <div id="root"></div> <!-- Paste your embed code from Chatbot > Publish here --> </body> </html>
Vite
Dodaj do pliku index.html. Skopiuj swój kod do osadzenia z Agent > Publikuj:
<!DOCTYPE html> <html lang="en"> <head> <!-- ... --> </head> <body> <div id="root"></div> <script type="module" src="/src/main.tsx"></script> <!-- Paste your embed code from Chatbot > Publish here --> </body> </html>
Dynamiczny identyfikator agenta
W aplikacjach wielodostępnych (multi-tenant), gdzie identyfikator agenta się zmienia:
// components/ChatbotWidget.tsx
'use client';
import Script from 'next/script';
interface ChatbotWidgetProps {
chatbotId: string;
widgetUrl: string;
}
export function ChatbotWidget({ chatbotId, widgetUrl }: ChatbotWidgetProps) {
if (!chatbotId) return null;
return (
<Script
src={widgetUrl}
data-chatbot={chatbotId}
strategy="afterInteractive"
/>
);
}
Ładowanie warunkowe
Pokaż widżet tylko na wybranych stronach:
// app/support/layout.tsx
import Script from 'next/script';
export default function SupportLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
{children}
{/* Get your src and data-chatbot values from Chatbot > Publish */}
<Script
src="YOUR_WIDGET_URL"
data-chatbot="YOUR_CHATBOT_ID"
strategy="afterInteractive"
/>
</>
);
}
Typy TypeScript
Widżet nie wymaga typów TypeScript, ponieważ jest ładowany zewnętrznie i samodzielnie zarządza swoim interfejsem.
Testowanie podczas developmentu
Do developmentu lokalnego:
- Dodaj
localhostdo dozwolonych domen - Użyj identyfikatora agenta ze środowiska produkcyjnego
- Testuj interakcje w zwykły sposób
Zmienne środowiskowe
Przechowuj identyfikator agenta i adres URL widżetu w zmiennych środowiskowych:
# .env.local NEXT_PUBLIC_CHATBOT_ID=your-chatbot-id NEXT_PUBLIC_WIDGET_URL=your-widget-url
<Script
src={process.env.NEXT_PUBLIC_WIDGET_URL}
data-chatbot={process.env.NEXT_PUBLIC_CHATBOT_ID}
strategy="afterInteractive"
/>
Obie wartości znajdziesz w zakładce Publikuj swojego agenta.
Uwaga dotycząca komponentów serwerowych
Komponent Script działa z React Server Components. Nie ma potrzeby oznaczania layoutu jako komponentu klienckiego.
Kolejne kroki
- Dostosuj wygląd widżetu
- Skonfiguruj dozwolone domeny
- Użyj REST API do budowy niestandardowych interfejsów