#!/bin/bash # Chatwoot 配置诊断工具 echo "======================================" echo "Chatwoot 配置诊断工具" echo "======================================" echo "" # 检查是否提供了 API Token if [ -z "$CHATWOOT_API_TOKEN" ]; then echo "❌ 请先设置 CHATWOOT_API_TOKEN 环境变量" echo "" echo "获取方式:" echo "1. 访问 http://localhost:3000" echo "2. 登录后进入 Settings → Profile → Access Tokens" echo "3. 创建一个新的 Access Token" echo "" echo "然后运行:" echo " CHATWOOT_API_TOKEN=your_token $0" echo "" exit 1 fi CHATWOOT_BASE_URL="http://localhost:3000" ACCOUNT_ID="2" echo "🔍 正在检查 Chatwoot 配置..." echo "" # 1. 检查服务是否运行 echo "1️⃣ 检查 Chatwoot 服务状态..." if curl -s "$CHATWOOT_BASE_URL" > /dev/null; then echo " ✅ Chatwoot 服务正常运行" else echo " ❌ Chatwoot 服务无法访问" exit 1 fi echo "" # 2. 获取所有收件箱 echo "2️⃣ 获取所有收件箱..." INBOXES=$(curl -s \ -H "Authorization: Bearer $CHATWOOT_API_TOKEN" \ "$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/inboxes") echo "$INBOXES" | grep -o '"id":[0-9]*' | wc -l | xargs echo " 找到收件箱数量:" echo "" # 3. 解析并显示每个收件箱的详细信息 echo "3️⃣ 收件箱详细信息:" echo "======================================" # 提取所有收件箱的 ID INBOX_IDS=$(echo "$INBOXES" | grep -o '"id":[0-9]*' | grep -o '[0-9]*' | sort -u) for INBOX_ID in $INBOX_IDS; do echo "" echo "📬 收件箱 ID: $INBOX_ID" echo "--------------------------------------" # 获取收件箱详情 INBOX_DETAIL=$(curl -s \ -H "Authorization: Bearer $CHATWOOT_API_TOKEN" \ "$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/inboxes/$INBOX_ID") # 提取收件箱名称 NAME=$(echo "$INBOX_DETAIL" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4) echo " 名称: $NAME" # 提取收件箱类型 TYPE=$(echo "$INBOX_DETAIL" | grep -o '"inbox_type":"[^"]*"' | head -1 | cut -d'"' -f4) echo " 类型: $TYPE" # 提取 Website Token(如果有) WEBSITE_TOKEN=$(echo "$INBOX_DETAIL" | grep -o '"website_token":"[^"]*"' | head -1 | cut -d'"' -f4) if [ -n "$WEBSITE_TOKEN" ]; then echo " Website Token: $WEBSITE_TOKEN" fi # 提取 Webhook URL WEBHOOK_URL=$(echo "$INBOX_DETAIL" | grep -o '"webhook_url":"[^"]*"' | head -1 | cut -d'"' -f4) if [ -n "$WEBHOOK_URL" ]; then echo " Webhook URL: $WEBHOOK_URL" else echo " Webhook URL: ❌ 未配置" fi # 检查是否是测试页面使用的 token if [ "$WEBSITE_TOKEN" = "39PNCMvbMk3NvB7uaDNucc6o" ]; then echo "" echo " ⭐ 这是测试页面使用的收件箱!" echo " Webhook 应该配置为: http://agent:8000/webhooks/chatwoot" fi done echo "" echo "======================================" echo "" echo "📋 下一步操作:" echo "" echo "1. 找到 Website Token 为 '39PNCMvbMk3NvB7uaDNucc6o' 的收件箱" echo "2. 记录该收件箱的 ID" echo "3. 确保该收件箱的 Webhook URL 配置为:" echo " http://agent:8000/webhooks/chatwoot" echo "" echo "💡 提示:可以通过 Chatwoot 界面更新配置:" echo " Settings → Inboxes → 选择收件箱 → Configuration → Webhook URL" echo ""