78 lines
2.4 KiB
Python
78 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Test template with 0 parameters
|
|
"""
|
|
import sys
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
load_dotenv()
|
|
|
|
import httpx
|
|
|
|
async def test_zero_params():
|
|
"""Test template with no parameters"""
|
|
|
|
access_token = os.getenv("WHATSAPP_ACCESS_TOKEN")
|
|
phone_id = os.getenv("WHATSAPP_PHONE_NUMBER_ID")
|
|
|
|
if not access_token or not phone_id:
|
|
print("[ERROR] Missing credentials")
|
|
return
|
|
|
|
print("Testing template with 0 parameters...")
|
|
print("=" * 80)
|
|
|
|
headers = {
|
|
"Authorization": f"Bearer {access_token}",
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
url = f"https://graph.facebook.com/v20.0/{phone_id}/messages"
|
|
|
|
# Template with NO parameters
|
|
payload = {
|
|
"messaging_product": "whatsapp",
|
|
"to": "+972504370045",
|
|
"type": "template",
|
|
"template": {
|
|
"name": "wedding_invitation",
|
|
"language": {"code": "he"}
|
|
}
|
|
}
|
|
|
|
print(f"\nSending template 'wedding_invitation' with NO parameters...")
|
|
|
|
try:
|
|
async with httpx.AsyncClient() as client:
|
|
response = await client.post(url, json=payload, headers=headers, timeout=10)
|
|
|
|
if response.status_code in (200, 201):
|
|
print(f"\n[SUCCESS] Template sent with 0 params!")
|
|
data = response.json()
|
|
msg_id = data.get('messages', [{}])[0].get('id')
|
|
print(f"Message ID: {msg_id}")
|
|
print("\n==> Template EXISTS but requires 0 parameters (it's a static template)")
|
|
else:
|
|
error = response.json().get('error', {})
|
|
error_msg = error.get('message', error)
|
|
error_code = error.get('code', 'N/A')
|
|
print(f"\n[FAILED] {error_code}: {error_msg}")
|
|
|
|
if "does not exist" in str(error_msg):
|
|
print("\n==> Template NOT FOUND in Meta!")
|
|
print("Please check:")
|
|
print(" 1. Template name is exactly: 'wedding_invitation'")
|
|
print(" 2. Language is: 'Hebrew' (he)")
|
|
print(" 3. Status is: 'APPROVED'")
|
|
elif "parameters" in str(error_msg):
|
|
print("\n==> Template EXISTS but parameter count is wrong")
|
|
|
|
except Exception as e:
|
|
print(f"\n[ERROR] {e}")
|
|
|
|
import asyncio
|
|
asyncio.run(test_zero_params())
|