問題解決
BotManager Browser Agent使用時に発生する可能性のある一般的な問題と解決方法を案内します。
一般的な問題
BotManagerオブジェクトがロードされない
症状:window.BotManagerがundefinedです。
原因:
- スクリプトがまだロードされていません。
- スクリプトパスが間違っています。
- ネットワークエラーが発生しました。
解決方法:
- スクリプトロード確認:
// スクリプトロード確認
if (typeof window.BotManager === 'undefined') {
console.error('BotManagerがロードされていません。');
}
- スクリプトパス確認:
<!-- 正しいスクリプトパス確認 -->
<script src="{{ AGENT_URL }}/agents/client/javascript/botmanager-browser-agent.js" async></script>
- ネットワークタブでスクリプトロード確認:
- ブラウザ開発者ツールのNetworkタブで
botmanager-browser-agent.jsファイルが正常にロードされたか確認します。
- ブラウザ開発者ツールのNetworkタブで
detectPage関数が動作しない
症状:BotManager.detectPage()を呼び出しても何も反応がありません。
原因:
- BotManagerオブジェクトがまだ初期化されていません。
- スクリプトが非同期でロードされてまだ準備されていません。
解決方法:
// スクリプトロード待機後使用
function waitForBotManager(callback) {
if (window.BotManager && typeof window.BotManager.detectPage === 'function') {
callback();
} else {
setTimeout(() => waitForBotManager(callback), 100);
}
}
waitForBotManager(() => {
BotManager.detectPage('/api/login-endpoint', (result) => {
performLogin();
});
});
検出リクエストが送信されない
症状:ページロード時に自動検出が動作しません。
原因:
cfg.detectOnLoadがfalseに設定されています。- ネットワークタイムアウトが発生しました。
解決方法:
- 設定確認:
// detectOnLoad設定確認
(function(cfg) {
cfg.detectOnLoad = true; // 自動検出有効化
})(window['BotManager-config'] || (window['BotManager-config'] = {}));
- ネットワークタイムアウト増加:
cfg.networkTimeout = 5000; // タイムアウト時間増加
Server-Side Agentとの連動ができない
症状:サーバーでx-botmanager-locationヘッダーを送ったがリダイレクトが発生しません。
原因:
- Browser Agentがロードされていません。
- ヘッダー名が間違っています(大文字小文字区別)。
解決方法:
- Browser Agentロード確認:
if (window.BotManager) {
console.log('Browser Agentがロードされました。');
}
- ヘッダー名確認:
- サーバーで
x-botmanager-location(小文字)でヘッダーを送信する必要があります。
- サーバーで
開発者ツール検出が動作しない
症状:開発者ツールを開いても検出されません。
原因:
cfg.detectDevToolsがfalseに設定されています。
解決方法:
cfg.detectDevTools = true; // 開発者ツール検出有効化
追加サポート
問題が解決されない場合は以下を確認してください:
- ブラウザコンソールでエラーメッセージ確認
- Networkタブでリクエスト/応答確認
- BotManagerコンソールで設定確認