React e Next.js
Adicione o widget do agente a aplicativos React e Next.js.
Integre o widget do agente a aplicativos React e Next.js com algumas linhas de código.
Instalação
Adicione o script do widget ao seu aplicativo React. Obtenha seu código de incorporação em Chatbot > Publicar, depois adapte-o para o seu framework.
Next.js (App Router)
Adicione o script ao seu layout raiz usando o componente Script do 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)
Adicione a _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
Adicione a public/index.html. Copie seu código de incorporação em Chatbot > Publicar:
<!DOCTYPE html> <html lang="en"> <head> <!-- ... --> </head> <body> <div id="root"></div> <!-- Paste your embed code from Chatbot > Publish here --> </body> </html>
Vite
Adicione a index.html. Copie seu código de incorporação em Chatbot > Publicar:
<!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 de Agente Dinâmico
Para aplicativos multi-tenant em que o ID do agente varia:
// 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"
/>
);
}
Carregamento Condicional
Exiba o widget apenas em determinadas páginas:
// 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"
/>
</>
);
}
Tipos TypeScript
O widget não requer tipos TypeScript, pois é carregado externamente e gerencia sua própria interface.
Testando Durante o Desenvolvimento
Para desenvolvimento local:
- Adicione
localhostaos domínios permitidos - Use o ID do seu agente de produção
- Teste as interações normalmente
Variáveis de Ambiente
Armazene o ID do agente e a URL do widget em variáveis de ambiente:
# .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"
/>
Obtenha os dois valores na aba Publicar do seu agente.
Observação sobre Server Components
O componente Script funciona com React Server Components. Não é necessário marcar o layout como um componente client.
Próximos Passos
- Personalize a aparência do widget
- Configure restrições de domínio
- Use a API REST para interfaces personalizadas