Framtid Innhold sender en HTTP POST-forespørsel til din webhook-URL hver gang en artikkel publiseres. Denne guiden viser payload-formatet og hvordan du verifiserer signaturen.
Forespørselen sendes som POST med Content-Type: application/json.
{
"article_id": "550e8400-e29b-41d4-a716-446655440000",
"tittel": "10 tips for bedre SEO i 2026",
"meta_tittel": "SEO-tips 2026 | Din Bedrift",
"meta_beskrivelse": "Lær de 10 viktigste SEO-tipsene for å rangere høyere i Google i 2026.",
"innhold_html": "<h2>1. Optimaliser for AI</h2><p>...</p>",
"innhold_markdown": "## 1. Optimaliser for AI\n\n...",
"nokkelord": ["seo", "søkemotoroptimalisering", "2026"],
"bilde_urls": ["https://qkmbbzuufcrcykgamoff.supabase.co/storage/v1/object/public/article-images/..."],
"publisert_at": "2026-04-06T12:00:00.000Z",
"destinasjon": null
}| Felt | Type | Beskrivelse |
|---|---|---|
| article_id | UUID | Unik ID for artikkelen |
| tittel | string | Artikkeltittel |
| meta_tittel | string | null | SEO-tittel for title-tag |
| meta_beskrivelse | string | null | Meta description for SEO |
| innhold_html | string | Fullt artikkelinnhold i HTML |
| innhold_markdown | string | Samme innhold som Markdown |
| nokkelord | string[] | SEO-nøkkelord |
| bilde_urls | string[] | URL-er til tilhørende bilder (fra AI-generering, opplasting, eller hentet fra HTML-innholdet) |
| destinasjon | string | null | Valgfritt mål (f.eks. spesifikk blogg-ID) — satt fra publiseringsvalg i appen |
| publisert_at | ISO 8601 | Tidspunkt for publisering |
Om du har konfigurert en Webhook Secret under Innstillinger, signeres hver forespørsel med HMAC-SHA256. Signaturen sendes i headeren X-Webhook-Signature med prefiks sha256=.
const crypto = require('crypto');
function verifiserWebhook(req, secret) {
const signatur = req.headers['x-webhook-signature'];
if (!signatur) return false;
const forventet = 'sha256=' +
crypto.createHmac('sha256', secret)
.update(JSON.stringify(req.body))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signatur),
Buffer.from(forventet)
);
}
// Express-eksempel:
app.post('/webhook', express.json(), (req, res) => {
if (!verifiserWebhook(req, process.env.WEBHOOK_SECRET)) {
return res.status(401).send('Ugyldig signatur');
}
const { tittel, innhold_html, meta_tittel } = req.body;
// Lagre artikkelen i ditt CMS...
res.status(200).json({ ok: true });
});<?php
$secret = getenv('WEBHOOK_SECRET');
$payload = file_get_contents('php://input');
$signatur = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
$forventet = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($forventet, $signatur)) {
http_response_code(401);
die('Ugyldig signatur');
}
$data = json_decode($payload, true);
// $data['tittel'], $data['innhold_html'], osv.
http_response_code(200);
echo json_encode(['ok' => true]);Om endepunktet ditt returnerer en feil eller ikke svarer innen 15 sekunder, prøver vi på nytt opptil 3 ganger med økende forsinkelse:
Alle forsøk logges og kan ses i artikkeldetalj-visningen. Ved HTTP 401/403 stoppes retrying umiddelbart.
Endepunktet ditt må returnere en HTTP 2xx-statuskode for å indikere suksess. Responskroppen logges men tolkes ikke.
Bygg en liten Node.js-server som mottar webhook, konverterer HTML til Portable Text med @portabletext/toolkit, og oppretter dokumentet via Sanity Client.
Bruk webhook-URL-en til å trigge en rebuild av din statiske side. Lagre artikkeldata i en JSON-fil eller database, og bygg om nettsiden automatisk.
Motta artikkeldata og lagre direkte i din egen database. Bruk innhold_html for rik tekst eller innhold_markdown om systemet ditt foretrekker Markdown.