Reegel „Postita veebikonksu” võimaldab automaatselt saata uued RSS-kanali postitused sinu määratud veebikonksu lõpp-punkti kohe, kui need avaldatakse. Saad valida, milliseid postitusi saadetakse, määrates filtreerimiseks märksõnad. Kui uus postitus vastab sinu tingimustele, saadetakse see lõpp-punkti JSON-vormingus POST-päringuga.
JSON-andmesisu vorming
Iga sinu veebikonksule saadetud POST-päring sisaldab kahte põhielementi: post ja feed.
Päring sisaldab ka metaandmeid veebikonksu sõnumi tuvastamiseks. Väli version näitab, millist Feederi veebikonksu API versiooni kasutatakse. Versiooni väärtus on alati 2023-06-26 ning seda uuendatakse, kui tehakse tagasiühilduvust lõhkuvaid muudatusi.
{
"version": "2023-06-26",
"message_id": "a unique UUID for this message, will be constant during retries",
"feed": { ... },
"post": { ... }
}
Element post sisaldab teavet üksiku postituse kohta:
{
"id": "The unique identifier of the post",
"title": "The title of the post",
"url": "The URL where the post can be accessed",
"published": "The date and time when the post was published",
"content": "The content of the post",
"audio_url": "link to mp3 attached to post (if present)",
"image_url": "link to image attached to post (if present)
}
Märkus. published väärtus on null, kui RSS-kanalis pole määratud kehtivat avaldamiskuupäeva.
Element feed sisaldab teavet kanali kohta, kust postitus pärineb:
{
"id": "The unique identifier of the feed",
"source_url": "The URL of the source, for example RSS/Atom feed URL",
"public_url": "The source's self identified public URL",
"title": "The title of the feed",
"favicon": "The URL of the feed's favicon"
}
Võime neid objekte tulevikus täiendada. Kui sinu arvates on midagi puudu, anna meile sellest teada.
Korduskatsete loogika
Kui päring ebaõnnestub, proovib Feeder seda automaatselt uuesti saata. Kui POST-päring ei saa HTTP-vastusekoodi vahemikus 200 kuni 399, proovime selle kindla ajakava järgi uuesti saata. Ajad on antud sekundites:
- Korduskatse 1: 5 sekundi pärast
- Korduskatse 2: 30 sekundi pärast
- Korduskatse 3: 60 sekundi pärast
- Korduskatse 4: 5 minuti pärast
- Korduskatse 5: 10 minuti pärast
- Korduskatse 6: 30 minuti pärast
- Korduskatse 7: 30 minuti pärast
- Korduskatse 8: 30 minuti pärast
Pane tähele, et korduskatsete mehhanism käivitub ainult päris postitussündmuste korral ega kehti testteavituste puhul. Ka ajad võivad muutuda.
Vigade otsimine
Vigade korral leiad need toimingu käivituste logist. Ava mittetoimiv reegel ja vajuta „Ava vealogi”.

Seal näed üksikasjalikumat teavet ebaõnnestunud veebikonksupäringute kohta.

Veebikonksu seadistamine

Veebikonksu seadistamiseks tee järgmist:
- Ava leht Reeglid.
- Loo uus reegel.
- Lisa reeglile nimi ning vali kanalid ja tingimused.
- Jaotises „Mis peaks juhtuma?” vali „Postita veebikonksu”.
- Sisesta veebikonksu URL selleks ette nähtud tekstiväljale.
- Kontrollimaks, kas kõik on õigesti seadistatud, saad klõpsata nupul „Saada proovisõnum”, et saata lõpp-punkti testteavitus. Pane tähele, et see on ainult test ning ebaõnnestumise korral korduskatsete loogika ei käivitu. Testpostituse saatmiseks peab sinu kontol olema vähemalt üks kanal, kuhu on postitusi lisatud.
Turvalisus: veebikonksu allkirjade kontrollimine
Veendumaks, et saabuvad veebikonksupäringud pärinevad tõesti Feederist ja neid pole muudetud, saad kontrollida iga veebikonksu jaoks loodud saladust. Iga veebikonksupäring sisaldab päist X-Feeder-Signature, milles on päringu sisu HMAC-SHA256 allkiri.
Kuidas see töötab

- Lülita reegli seadetes sisse valik „Täpsem”. Näed välja „Veebikonksu saladus” väärtust.
- Kui Feeder saadab sinu lõpp-punkti veebikonksupäringu, arvutab see JSON-päringu sisust HMAC-SHA256 räsiväärtuse, kasutades võtmeks sinu saladust.
- Tulemuseks saadud allkiri saadetakse päises
X-Feeder-Signature, mille ees onsha256=. Näiteks:
X-Feeder-Signature: sha256=a1b2c3d4e5f6...
- Sinu server arvutab toorpäringu sisu ja sinu saladuse koopia abil sama HMAC-SHA256 räsiväärtuse ning võrdleb seda päises oleva väärtusega.
Miks seda kasutada?
- Autentsus: kinnitab, et päringu saatis Feeder, mitte kolmas osapool.
- Terviklus: tagab, et edastatavat sisu pole vahepeal muudetud.
Allkirja kontrollimine
Allkirja kontrollimiseks tee järgmist:
- Loe päringu toorsisu stringina, ära töötle seda enne JSON-ina.
- Arvuta sellest stringist oma saladuse abil HMAC-SHA256.
- Võrdle arvutatud allkirja päise
X-Feeder-Signatureväärtusega, kasutades ajast sõltumatut võrdlust, et vältida ajastusründeid.
Näide: Node.js (Express)
const crypto = require("crypto");
const WEBHOOK_SECRET = process.env.FEEDER_WEBHOOK_SECRET;
function verifyFeederSignature(req, res, next) {
const signature = req.headers["x-feeder-signature"];
if (!signature) {
return res.status(401).send("Missing signature");
}
const expectedSignature =
"sha256=" +
crypto.createHmac("sha256", WEBHOOK_SECRET).update(req.body).digest("hex");
const isValid = crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
if (!isValid) {
return res.status(401).send("Invalid signature");
}
next();
}
// Important: use express.raw() so req.body is the raw string, not parsed JSON
app.post(
"/webhook",
express.raw({ type: "application/json" }),
verifyFeederSignature,
(req, res) => {
const payload = JSON.parse(req.body);
// Handle the webhook payload
console.log("Received verified webhook:", payload);
res.sendStatus(200);
}
);
Tähtis: Allkirja kontrollimiseks pead kasutama päringu toorsisu. Kui sinu raamistik töötleb JSON-sisu enne HMAC-i arvutamist, võib uuesti serialiseeritud string algsest erineda ja allkiri ei klapi. Expressis kasuta veebikonksu marsruudil express.raw({ type: "application/json" }), nagu ülal näidatud.
Veel küsimusi?
Küsimuste korral kirjuta meile aadressil support@feeder.co.