React & Next.js
Voeg de agent-widget toe aan React- en Next.js-toepassingen.
Integreer de agent-widget in React- en Next.js-toepassingen met een paar regels code.
Installatie
Voeg het widgetscript toe aan je React-app. Haal je embedcode op via Chatbot > Publiceren en pas deze vervolgens aan voor je framework.
Next.js (App Router)
Voeg het script toe aan je root layout met de Next.js Script-component:
// 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)
Voeg het toe aan _app.tsx of _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
Voeg het toe aan public/index.html. Kopieer je embedcode via Chatbot > Publiceren:
<!DOCTYPE html> <html lang="en"> <head> <!-- ... --> </head> <body> <div id="root"></div> <!-- Paste your embed code from Chatbot > Publish here --> </body> </html>
Vite
Voeg het toe aan index.html. Kopieer je embedcode via Chatbot > Publiceren:
<!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>
Dynamisch agent-id
Voor multi-tenant apps waarbij het agent-id varieert:
// 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"
/>
);
}
Voorwaardelijk laden
Toon de widget alleen op bepaalde pagina's:
// 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"
/>
</>
);
}
TypeScript-typen
De widget heeft geen TypeScript-typen nodig, omdat deze extern wordt geladen en zijn eigen UI beheert.
Testen tijdens ontwikkeling
Voor lokale ontwikkeling:
- Voeg
localhosttoe aan de toegestane domeinen - Gebruik je productie-agent-id
- Test interacties zoals normaal
Omgevingsvariabelen
Bewaar het agent-id en de widget-URL in omgevingsvariabelen:
# .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"
/>
Haal beide waarden op via het tabblad Publiceren van je agent.
Opmerking over Server Components
De Script-component werkt met React Server Components. Je hoeft de layout niet als client component te markeren.
Volgende stappen
- Pas het uiterlijk van de widget aan
- Stel domeinbeperkingen in
- Gebruik de REST API voor aangepaste UI's