simple-api / main.py
Mr-Help's picture
Update main.py
b5f9518 verified
raw
history blame
2.18 kB
from fastapi import FastAPI, Request
from datetime import datetime, timezone, timedelta
app = FastAPI()
@app.post("/webhook")
async def receive_webhook(request: Request):
payload = await request.json()
print("📥 Webhook received:")
# Define GMT+3 offset
gmt_plus_3 = timezone(timedelta(hours=3))
# 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:
formatted_time = datetime.fromtimestamp(payload.get('time'), gmt_plus_3).strftime('%Y-%m-%d %H:%M:%S GMT+3')
print(f"Time (Formatted): {formatted_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')}")
create_ts = entry.get('create_time')
print(f"Create Time (Unix): {create_ts}")
try:
formatted_create_time = datetime.fromtimestamp(create_ts, gmt_plus_3).strftime('%Y-%m-%d %H:%M:%S GMT+3')
print(f"Create Time (Formatted): {formatted_create_time}")
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("----")
# Lead field values
for change in entry.get('changes', []):
print(f"{change.get('field').capitalize()}: {change.get('value')}")
print("----")
return {"status": "ok"}