一般的な問題
10の一般的な 問題と解決策
実例から整理:Widget非表示、CORSブロック、SPAページ遷移時の消失、popup競合、メッセージ送信失敗など。各項目に具体的な解決手順を記載、抽象論なし。
右下にチャットボタンが表示されない?
順に確認:
- F12 Networkで
loader.jsが200 OKか確認。404 / CORSエラーなら埋め込みURLが書き換えられていないか確認 - F12コンソールで赤いエラーがないか確認(CSP / クロスオリジン / Token形式)
- 埋め込みコードが
</body>の直前にあり、<head>内ではないか確認 - サイトのCSPが外部scriptをブロックしていないか — Widget埋め込みガイドの「CSP設定」を参照
- 管理画面の「🔍 接続デバッグ」で「⚡ 接続テスト」を押して能動的に確認
メインカラー / テキストを変えてもサイトに古いスタイルが残る?
訪問者のブラウザでハードリロード(Ctrl/Cmd + Shift + R)。Widgetは読み込みごとに最新設定を取得するため、コードの貼り直しは不要。それでも古いままなら、F12 Networkの
/api/widget/configレスポンスを見て返却値を確認。メッセージが送れない/「ネットワークエラー」と表示?
Tokenが書き換わっていないか確認;管理画面でBotが無効化されていないか確認(
enabled=falseは200 + "サービス停止中"を返す);社内ファイアウォール環境ならaibot.chungtair.comドメインを許可。デバッグパネルのPOST /api/widget/messageレスポンスを見れば失敗種別が即座にわかります。F12にCSPエラーが出る、どうすれば?
エラーは
Refused to load the script ... violates the following Content Security Policy directiveのような形式。解決策:サイトのCSPに以下を追加:script-src https://aibot.chungtair.com; frame-src https://aibot.chungtair.com; connect-src https://aibot.chungtair.com; img-src https://aibot.chungtair.com data:;。完全な対照表はWidget埋め込みガイドのCSPセクション参照。Next.js / Vue Routerでページ遷移後にWidgetが消える?
通常SPAフレームワークが
<body>全体を再レンダリングし、Widgetが注入したDOMも消えるため。解決策:埋め込みコードを個別ページではなくルートlayoutに配置(Next.jsのapp/layout.tsx、Nuxtのnuxt.config.ts)。ルートlayoutはSPAナビゲーション時に再レンダリングされないため、Widgetが保持されます。Widgetが自サイトのpopup / フローティングボタンと重なる?
管理画面「Widget設定」でボタン位置(右下 / 左下)を切り替え。それでも重なる場合は自サイトのpopupのz-indexを確認 — WidgetのiframeはデフォルトでZ-index 999999のため、自要素を上に出すのは現実的でない。自要素を移動するかWidget表示時に非表示にする方が良い。
WordPressに貼り付けたらTokenが変な文字列に変わる?
WordPressはデフォルトでfooter.phpに貼ったHTMLにwpautop / wptexturizeフィルタを適用し、
"を全角引用符に変換することがあります。解決策:「Insert Headers and Footers」プラグインを使い、Footer Scripts欄に貼り付け(この欄はフィルタ対象外)。Shopifyのtheme.liquidに貼ったが反映されない?
</body>の直前(</html>の前ではなく)に貼っているか確認。一部のShopifyテーマは独自のfooter.liquidを使うため、実際に最後の</body>をレンダリングするファイルを探す必要があります。ブラウザのview-sourceで</body>の位置を確認。訪問者にはWidgetが見えないが、管理画面デバッグパネルにping記録がある?
Widgetは読み込まれている(pingが届いた)が、訪問者側でUIが隠されている状態。よくある原因:
- サイトCSSにグローバルルール
iframe { display: none }や* { pointer-events: none }等 - cookie同意ポップアップが画面を覆ってWidgetを隠している
- 訪問者が広告ブロッカー(uBlockなど)でサードパーティiframeをブロック
chungtair-widgetコンテナが隠されていないか確認。複数サイトに同じBotを埋め込みたい場合は?
同じ埋め込みコードを各サイトに貼り付け。Widget Tokenはドメイン制限なし、複数ドメインで共用OK。デバッグパネルの「最後の成功ping」は最新のpingドメインのみ表示(全部ではない)。ドメイン別に会話を追跡したい場合は、独自Tokenを持つBotを別々に作成することを推奨。