React & Next.js
Ajoutez le widget de l’agent aux applications React et Next.js.
Intégrez le widget de l’agent dans vos applications React et Next.js en quelques lignes de code.
Installation
Ajoutez le script du widget à votre application React. Récupérez votre code d’intégration depuis Chatbot > Publier, puis adaptez-le à votre framework.
Next.js (App Router)
Ajoutez le script à votre layout racine à l’aide du composant Script de 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)
Ajoutez-le à _app.tsx ou _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
Ajoutez-le à public/index.html. Copiez votre code d’intégration depuis Chatbot > Publier :
<!DOCTYPE html> <html lang="en"> <head> <!-- ... --> </head> <body> <div id="root"></div> <!-- Paste your embed code from Chatbot > Publish here --> </body> </html>
Vite
Ajoutez-le à index.html. Copiez votre code d’intégration depuis Chatbot > Publier :
<!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>
ID d’agent dynamique
Pour les applications multi-tenant où l’ID de l’agent varie :
// 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"
/>
);
}
Chargement conditionnel
Afficher le widget uniquement sur certaines pages :
// 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"
/>
</>
);
}
Types TypeScript
Le widget ne nécessite pas de types TypeScript, car il est chargé en externe et gère sa propre interface.
Tests en développement
Pour le développement local :
- Ajoutez
localhostaux domaines autorisés - Utilisez l’ID de votre agent de production
- Testez les interactions normalement
Variables d’environnement
Stockez l’ID de l’agent et l’URL du widget dans des variables d’environnement :
# .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"
/>
Récupérez les deux valeurs depuis l’onglet Publier de votre agent.
Remarque sur les composants serveur
Le composant Script fonctionne avec les React Server Components. Inutile de marquer le layout comme composant client.
Étapes suivantes
- Personnaliser l’apparence du widget
- Configurer les restrictions de domaine
- Utiliser l’API REST pour des interfaces personnalisées