simple-api / main.py
Mr-Help's picture
Update main.py
8eb8201 verified
raw
history blame
2.15 kB
from fastapi import FastAPI, Request
from datetime import datetime
app = FastAPI()
@app.post("/webhook")
async def receive_webhook(request: Request):
payload = await request.json()
print("📥 Webhook received:")
# Top-level fields
print(f"Request ID: {payload.get('request_id')}")
print(f"Object: {payload.get('object')}")
print(f"Time (Unix): {payload.get('time')}")
try:
readable_time = datetime.utcfromtimestamp(payload.get('time')).strftime('%Y-%m-%d %H:%M:%S UTC')
print(f"Time (Formatted): {readable_time}")
except Exception:
print("Time (Formatted): Invalid timestamp")
print("----")
# Loop through entries
for entry in payload.get('entry', []):
print(f"Lead ID: {entry.get('id')}")
print(f"Page ID: {entry.get('page_id')}")
print(f"Page Name: {entry.get('page_name')}")
print(f"Campaign ID: {entry.get('campaign_id')}")
print(f"Campaign Name: {entry.get('campaign_name')}")
print(f"Ad Group ID: {entry.get('adgroup_id')}")
print(f"Ad Group Name: {entry.get('adgroup_name')}")
print(f"Ad ID: {entry.get('ad_id')}")
print(f"Ad Name: {entry.get('ad_name')}")
# Format create time if present
create_ts = entry.get('create_time')
print(f"Create Time (Unix): {create_ts}")
try:
create_time_fmt = datetime.utcfromtimestamp(create_ts).strftime('%Y-%m-%d %H:%M:%S UTC')
print(f"Create Time (Formatted): {create_time_fmt}")
except Exception:
print("Create Time (Formatted): Invalid timestamp")
print(f"Advertiser ID: {entry.get('advertiser_id')}")
print(f"Advertiser Name: {entry.get('advertiser_name')}")
print(f"Library ID: {entry.get('library_id')}")
print(f"Lead Source: {entry.get('lead_source')}")
print("----")
# Loop through lead fields (changes)
for change in entry.get('changes', []):
print(f"{change.get('field').capitalize()}: {change.get('value')}")
print("----")
return {"status": "ok"}
# Run with: uvicorn filename:app --reload