109 lines
3.3 KiB
Bash
109 lines
3.3 KiB
Bash
|
|
#!/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 ""
|