All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Removed manual SSL context creation that was causing handshake failures - Simplified create_http_client() to let httpx handle SSL negotiation directly - Disabled HTTP/2 for better compatibility - Added proper connection limits and timeouts - Updated all three client instantiations to await the async function - Improved overall SSL/TLS stability for Meta API connections
95 lines
2.4 KiB
Python
95 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to send WhatsApp message via template
|
|
Usage: python test_whatsapp_send.py
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
import logging
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables
|
|
load_dotenv()
|
|
|
|
# Configure logging
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Import after logging is configured
|
|
from database import SessionLocal
|
|
from whatsapp import WhatsAppService
|
|
|
|
|
|
async def test_send_whatsapp():
|
|
"""Test sending a WhatsApp message using hina_invitation template"""
|
|
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# Initialize WhatsApp service
|
|
service = WhatsAppService(db=db)
|
|
|
|
# Phone number to test (Israeli format)
|
|
phone = "0504370045"
|
|
|
|
# Template parameters for hina_invitation
|
|
params = {
|
|
"contact_name": "דוד",
|
|
"event_date": "17/05",
|
|
"event_date_day": "17",
|
|
"venue": "אולם הגן",
|
|
"location": "ירושלים",
|
|
"reception_time": "18:30",
|
|
"ceremony_time": "19:00",
|
|
"dinner_time": "20:00",
|
|
"bride_name": "ורד",
|
|
"groom_name": "דביר",
|
|
"event_id": "f3122a7d-1d7c-4cc1-955d-1c6b7358bd25"
|
|
}
|
|
|
|
print("\n" + "="*80)
|
|
print("TESTING WHATSAPP MESSAGE SEND")
|
|
print("="*80)
|
|
print(f"Phone: {phone}")
|
|
print(f"Template: hina_invitation")
|
|
print(f"Parameters: {params}")
|
|
print("="*80 + "\n")
|
|
|
|
# Send the message
|
|
logger.info(f"Attempting to send WhatsApp message to {phone}")
|
|
result = await service.send_by_template_key(
|
|
template_key="wedding_invitation_by_vered",
|
|
to_phone=phone,
|
|
params=params
|
|
)
|
|
|
|
print("\n" + "="*80)
|
|
print("SUCCESS!")
|
|
print("="*80)
|
|
print(f"Result: {result}")
|
|
print("="*80 + "\n")
|
|
|
|
return result
|
|
|
|
except Exception as e:
|
|
print("\n" + "="*80)
|
|
print("ERROR!")
|
|
print("="*80)
|
|
print(f"Error: {str(e)}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
print("="*80 + "\n")
|
|
raise
|
|
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_send_whatsapp())
|