Custom destination – tai kanalas, kuris nukreipia į jūsų valdomą URL, o ne į socialinį tinklą. Ocoya siunčia į jį kiekvieną suplanuotą įrašą kaip JSON per POST, o jūsų kodas nusprendžia, ką reiškia publikavimas — straipsnis jūsų CMS, eilutė duomenų bazėje, pranešimas eilėje.
Šiame puslapyje aprašyta sutartis, kurią turi atitikti jūsų endpointas. Visą užklausos turinį rasite Pagalbos centre, straipsnyje Custom (webhook).
Custom destinations jungiamos Ocoya programėlėje — Channels → Connect channel → Custom. Nėra jokio REST ar MCP endpointo joms prijungti, todėl šiame puslapyje aprašomas endpointas, kurį rašote jūs, o ne tas, į kurį siunčiate užklausas.
Ką siunčia Ocoya
POST su JSON turiniu ir Content-Type: application/json, plius bet kokios antraštės (headers), kurias sukonfigūravote kanale.
{
"event": "post.published",
"post": {
"id": "clx…",
"title": "…",
"caption": "…",
"image": "https://…",
"options": { "slug": "…" }
}
}Ką jūsų endpointas privalo atsakyti
Trys dalykai, visi privalomi. Publikavimas, kuriame trūksta bent vieno iš jų, įrašomas kaip nepavykęs.
1. 2xx būsena
Bet kokia kita būsena įrašoma kaip nepavykęs publikavimas, o būsena ir atsakymo turinys parodomi prie įrašo, kad matytumėte, ką atsakė jūsų endpointas.
2. id
Jūsų identifikatorius tam, ką ką tik sukūrėte — duomenų bazės eilutės id, CMS dokumento id, bet kas, pagal ką patys susirastumėte įrašą. Ocoya jį išsaugo ir nusiunčia atgal į jūsų delete URL, taigi būtent pagal jį ir trinate.
3. url
Adresas, į kurį publikavote. Jis tampa įrašo View post nuoroda Ocoya.
{
"id": "9f2c1a",
"url": "https://yourblog.com/post"
}| Field | Type | Required | What it does |
|---|---|---|---|
id | string | Yes | Jūsų sukurto turinio identifikatorius. Išsiunčiamas atgal kaip id trynimo metu. |
url | string | Yes | Publikuotas adresas. Tampa įrašo View post nuoroda. |
Tai vieninteliai du raktai, kurie skaitomi iš atsakymo, ir abu turi būti parašyti būtent taip. permalink ankstesnėse versijose buvo priimamas kaip url sinonimas, bet dabar nebe.
Abu jie skaitomi tik iš šio atsakymo. Nėra jokio papildomo iškvietimo jiems vėliau perduoti, todėl endpointas, kuris tik įdeda darbą į eilę, turi žinoti savo id ir adresą dar prieš atsakydamas, o ne pabaigęs darbą.
Jei jūsų endpointas atsako 2xx be jų, Ocoya įrašo publikavimą kaip nepavykusį ir taip nurodo prie įrašo. Gali būti, kad tuo momentu turinys jūsų pusėje jau egzistuoja — pranešime tai ir pasakoma, nes aklas perpublikavimas sukurtų antrą kopiją.
Laikas
Jūsų endpointas turi 30 sekundžių atsakymui. Pirmiausia patvirtinkite užklausą, o lėtus darbus atlikite po to, o ne atvirkščiai.
Peradresavimas (redirect) laikomas tinkamu, o ne klaida, jei adresas, į kurį nukreipiama, praeina tuos pačius patikrinimus kaip ir pirminis. Metodas išsaugomas, tad jūsų endpointas vis tiek gauna POST su turiniu. Daugiausia leidžiama trys šuoliai.
Trynimas
Jei kanalas turi delete URL, įrašą Ocoya pusėje ištrynus, į jį nusiunčiama post.deleted užklausa, kurioje yra id, kurį grąžinote publikavimo metu:
{
"event": "post.deleted",
"id": "9f2c1a",
"post": { … }
}id yra pačiame viršuje ir vienas — tai identifikatorius, kurį jūs išdavėte, be nieko, ką reikėtų išskleisti ar išnarplioti. url, kurią grąžinote, nėra siunčiama atgal: endpointui, kuris trina pagal savo id, nėra naudos iš adreso, kurį jis ir taip žino.
Atsakykite bet kokiu 2xx. Jei įrašas jūsų pusėje jau neegzistuoja, 404 arba 410 laikoma kaip jau ištrintas, o ne kaip klaida. Įrašas Ocoya vis tiek bus ištrintas.
Susiję
Custom (webhook)
Pilnas turinys, antraštės, limitai ir dažniausios problemos.