如何将 Asyntai AI 聊天机器人添加到 PayloadCMS

PayloadCMS 驱动的网站分步指南

获取嵌入代码

重要提示: PayloadCMS 是一个无头 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 前端(最常见)

PayloadCMS 通常使用 Next.js 作为前端框架。将聊天机器人添加到您的根布局中:

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 替换为仪表板中您的实际小部件 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 中:

  1. 打开您的主 HTML 文件(通常是 index.html
  2. </body> 闭合标签之前添加嵌入代码:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> </body> </html>

步骤 3:部署并验证

将代码添加到您的前端应用程序后:

  1. 将前端部署到您的托管服务商(Vercel、Netlify 等)
  2. 在新的浏览器标签页中打开您的线上网站
  3. 您应该在右下角看到聊天小部件按钮
  4. 点击它以确保它能正常打开和运行

看不到小部件? 请确保已将 YOUR_WIDGET_ID 替换为仪表板中您的实际小部件 ID。检查脚本是否在浏览器的网络标签页(F12 > Network)中加载。验证添加代码后前端已重新部署。对于 Next.js,确保使用的是 next/script 中的 Script 组件,而不是普通的 <script> 标签。清除浏览器缓存或在无痕模式下测试。