#!/usr/bin/env ruby # 检查 Webhook 配置 require_relative 'config/environment' puts "=== Webhook 配置检查 ===" puts "" # 1. 检查 Account 2 account = Account.find(2) puts "✅ Account ID: #{account.id}" puts " Name: #{account.name}" puts "" # 2. 检查 Webhooks webhooks = account.webhooks puts "📊 Webhooks 数量: #{webhooks.count}" puts "" if webhooks.count == 0 puts "⚠️ 没有配置 Webhook!" puts "" puts "💡 创建 Webhook 的方法:" puts " 在 Rails console 中执行:" puts "" puts " account = Account.find(2)" puts " account.webhooks.create!(" puts " webhook_url: 'https://your-domain.com/webhook'," puts " subscriptions: ['conversation_created', 'message_created']," puts " active: true" puts " )" else webhooks.each do |webhook| puts "━━━━━━━━━━━━━━━━━━━━━━━━━━━━" puts "Webhook ID: #{webhook.id}" puts "URL: #{webhook.webhook_url}" puts "启用: #{webhook.active ? '✅ 是' : '❌ 否'}" puts "订阅事件: #{webhooks.subscriptions.inspect}" puts "重试次数: #{webhook.retry_frequency}" puts "" end end # 3. 检查最近的 Webhook 调用 puts "━━━━━━━━━━━━━━━━━━━━━━━━━━━━" puts "📋 最近的 Webhook 调用日志:" puts "" recent_logs = account.webhook_logs.order(created_at: :desc).limit(5) if recent_logs.count == 0 puts "⚠️ 没有 Webhook 调用记录" else recent_logs.each do |log| puts "ID: #{log.id}" puts "事件: #{log.event_type}" puts "状态: #{log.status}" puts "响应码: #{log.response_code}" puts "创建时间: #{log.created_at}" puts "错误: #{log.error_message || '无'}" puts "" end end # 4. 检查是否有 message_created 事件订阅 puts "━━━━━━━━━━━━━━━━━━━━━━━━━━━━" puts "🔍 检查 message_created 事件订阅:" has_subscription = webhooks.any? { |w| w.subscriptions.include?('message_created') } if has_subscription puts "✅ 已订阅 message_created 事件" else puts "❌ 未订阅 message_created 事件" puts "" puts "💡 添加订阅的方法:" puts " webhook = Webhook.find(1)" puts " webhook.update(subscriptions: ['conversation_created', 'message_created', 'message_updated'])" end