chatwoot-develop/configure_captain_webhook.rb

53 lines
1.6 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
# Configurar webhook do Wuzapi
inbox = Inbox.find_by(channel_type: 'Channel::Whatsapp')
channel = inbox.channel
# Nova URL do webhook
webhook_url = "https://f3eaf72e73cf4a94-189-6-11-5.serveousercontent.com/webhooks/whatsapp/#{channel.phone_number}"
puts '🔄 Atualizando webhook do Wuzapi...'
puts "URL antiga: #{channel.provider_config['webhook_url']}"
puts "URL nova: #{webhook_url}"
# Atualizar configuração
channel.provider_config['webhook_url'] = webhook_url
channel.save!
# Configurar webhook no Wuzapi
wuzapi_url = "#{channel.provider_config['api_url']}/device/#{channel.phone_number}/webhook"
headers = { 'Content-Type' => 'application/json' }
headers['Authorization'] = "Bearer #{channel.provider_config['wuzapi_user_token']}" if channel.provider_config['wuzapi_user_token'].present?
body = {
url: webhook_url,
events: 'All',
mode: 'true'
}.to_json
require 'net/http'
uri = URI(wuzapi_url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
request = Net::HTTP::Post.new(uri.path, headers)
request.body = body
response = http.request(request)
puts "✅ Webhook configurado! Resposta: #{response.code} - #{response.body}"
# Verificar Captain
assistant = Captain::Assistant.find_by(name: 'Jasmine (Gerente)')
captain_inbox = Captain::CaptainInbox.find_or_create_by!(
inbox: inbox,
assistant: assistant
)
puts "\n✅ Captain vinculado à inbox!"
puts "Assistant: #{assistant.name}"
puts "Inbox: #{inbox.name}"
puts "Captain Inbox ID: #{captain_inbox.id}"
puts "\n🎯 Tudo configurado! Envie uma mensagem via WhatsApp para testar."