PayloadCMSにAsyntai AIチャットボットを追加する方法
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プロジェクトでNext.jsの代わりにカスタムReactフロントエンドを使用している場合は、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を使用したサイトがPayload APIを利用するプレーンHTMLまたは静的フロントエンドの場合は、HTMLに埋め込みコードを直接追加してください:
- メインのHTMLファイル(通常はindex.html)を開いてください
- 閉じ</body>タグの直前に埋め込みコードを追加してください:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
ステップ3:デプロイと確認
フロントエンドアプリケーションにコードを追加した後:
- フロントエンドをホスティングプロバイダー(Vercel、Netlifyなど)にデプロイしてください
- ライブサイトを新しいブラウザタブで開いてください
- 右下にチャットウィジェットボタンが表示されるはずです
- クリックして正しく開き、正常に動作することを確認してください
ウィジェットが表示されませんか? YOUR_WIDGET_IDをダッシュボードの実際のウィジェットIDに置き換えたことを確認してください。ブラウザのネットワークタブ(F12 > Network)でスクリプトが読み込まれていることを確認してください。コードを追加した後にフロントエンドが再デプロイされたことを確認してください。Next.jsの場合は、通常の<script>タグではなく、next/scriptのScriptコンポーネントを使用していることを確認してください。ブラウザのキャッシュをクリアするか、シークレットモードでテストしてください。
Weebly