SanityにAsyntai AIチャットボットを追加する方法
Sanityを使用したウェブサイトのステップバイステップガイド
重要: SanityはAPIを通じてコンテンツを配信するヘッドレスCMSです。チャットボットコードは、Sanity Studio自体ではなく、フロントエンドアプリケーション(Next.js、Gatsby、Nuxt、プレーンHTMLなど)に追加する必要があります。
ステップ1:埋め込みコードを取得する
まず、Asyntaiダッシュボードに移動し、「埋め込みコード」セクションまでスクロールしてください。次のような固有の埋め込みコードをコピーしてください:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
注記: 上記のコードは一例です。個人のウィジェットIDが含まれているため、ダッシュボードから固有の埋め込みコードをコピーしてください。
ステップ2:Next.jsフロントエンドに追加(最も一般的)
Sanityを使用したサイトがNext.js(最も一般的な組み合わせ)を使用している場合は、ルートレイアウトにチャットボットを追加してください:
App Router(Next.js 13以降)
app/layout.js(または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.jsを開いてください:
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:Gatsbyフロントエンド
SanityサイトでGatsbyを使用している場合は、gatsby-ssr.jsでスクリプトを追加してください:
// gatsby-ssr.js
import React from 'react'
export const onRenderBody = ({ setPostBodyComponents }) => {
setPostBodyComponents([
<script
key="asyntai"
async
src="https://asyntai.com/static/js/chat-widget.js"
data-asyntai-id="YOUR_WIDGET_ID"
/>
]);
};
注記: クライアントサイドナビゲーション中にウィジェットを維持したい場合は、gatsby-browser.jsにも同じコードを追加する必要があります。または、ルートレイアウトコンポーネントに追加することもできます。
代替方法2:Nuxt.jsフロントエンド
SanityサイトでNuxt.jsを使用している場合は、nuxt.config.js(またはnuxt.config.ts)でスクリプトを追加してください:
// nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
script: [
{
src: 'https://asyntai.com/static/js/chat-widget.js',
'data-asyntai-id': 'YOUR_WIDGET_ID',
async: true
}
]
}
}
})
代替方法3:プレーンHTMLフロントエンド
Sanityを使用したサイトがプレーンHTMLまたはSanity APIを利用する静的サイトジェネレーターを使用している場合:
- メインのHTMLファイル(通常はindex.html)を開いてください
- 閉じ</body>タグの直前に埋め込みコードを追加してください:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
代替方法4:React(ViteまたはCreate React App)
フロントエンドでReactとViteまたはCreate React Appを使用している場合:
public/ディレクトリのindex.htmlにスクリプトを追加してください:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... existing head content ... -->
</head>
<body>
<div id="root"></div>
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
</html>
または、ルートコンポーネントでuseEffectフックを使用します:
// App.jsx or App.tsx
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
);
}
ステップ3:デプロイと確認
フロントエンドアプリケーションにコードを追加した後:
- フロントエンドをホスティングプロバイダー(Vercel、Netlifyなど)にデプロイしてください
- ライブサイトを新しいブラウザタブで開いてください
- 右下にチャットウィジェットボタンが表示されるはずです
- クリックして正しく開き、正常に動作することを確認してください
ウィジェットが表示されませんか? YOUR_WIDGET_IDをダッシュボードの実際のウィジェットIDに置き換えたことを確認してください。ブラウザのネットワークタブ(F12 > Network)でスクリプトが読み込まれていることを確認してください。コードを追加した後にフロントエンドが再デプロイされたことを確認してください。Next.jsの場合は、通常の<script>タグではなく、next/scriptのScriptコンポーネントを使用していることを確認してください。ブラウザのキャッシュをクリアするか、シークレットモードでテストしてください。
Weebly