Вебхуки
Формат
{
"event": "direct_link",
"user_tg_id": "799001234"
}Проверка подписи (Python)
from fastapi import FastAPI, Request, HTTPException
from botads import verify_signature, parse_webhook_payload
app = FastAPI()
API_TOKEN = "<api_token>"
@app.post("/webhook")
async def handle_webhook(request: Request):
body = await request.body()
signature = request.headers.get("X-Signature", "") # формат sha256=<hex>
bot_id = request.headers.get("X-Bot-Id")
ts = request.headers.get("X-Timestamp")
if not verify_signature(body, signature, API_TOKEN):
raise HTTPException(status_code=401, detail="invalid signature")
payload = parse_webhook_payload(body)
# bot_id и ts можно логировать/валидировать на свежесть для защиты от реплеев
# payload.event -> "direct_link" или "rewarded"
# payload.user_tg_id -> строка Telegram user id
return {"status": "ok"}Последнее обновление
