Skip to main content

Kokeile laajennusten kehittäjän API:a

Käytä tätä opasta, jos haluat rakentaa Chastify-laajennuksen, isännöidä iframe-laajennussivua tai kutsua kehittäjärajapintaa omasta taustajärjestelmästäsi.

Tämä sivu on lähtökohta: minkä tilan valita, mihin soittaa ensin ja minne mennä seuraavaksi.

Konkreettisia laajennusten toimintoja, kuten lukituksen avaamisen estoja, tavallisia pakollisia toimintoja, palkintoja ja rangaistuksia, on kohdassa Extension API Features.

tip

Haluatko vain hallita omaa lukkoasi?

Jos sinun ei tarvitse rakentaa julkista laajennusta, Ulkoinen API ja ohjelmat -sivu on helpoin tapa aloittaa. Luot vain DEV-tokenin ja kutsut yksinkertaisia ​​REST-päätepisteitä – ei laajennuksen määritystä, ei iframe-kehystä, ei istunnonhallintaa. Se tukee lisäys-/poistoaikaa, jäädytystä, tehtäviä, laitekomentoja ja paljon muuta.

Mihin tätä API:a käytetään

Extensions Developer API:n avulla voit rakentaa kolmannen osapuolen laajennuskokemuksia, jotka toimivat Chastify-lukitusistuntojen sisällä.

Sen avulla voit:

  • Lue istunto ja lukitse konteksti (session.get laajennuksille, /api/apps/v1/session omalle lukitusautomaatiolle)
  • Lue laajennuksen omistamia tietoja lukitusistuntoa kohden (state.get) ja kirjoita ne taustajärjestelmästäsi (PUT/PATCH /state)
  • Tallenna laajennuksen omistamat kuvatiedostot Chastify:n hallinnoimaan R2-tallennustilaan (files.*)
  • Lisää laajennuksen käyttöliittymätoiminnot lukituskortteihin (metadata.homeActions)
  • Portin lukituksen avausprosessi laajennuksen omistamilla lukituksen avausesto-ominaisuuksilla (metadata.unlockBlockers)
  • Käynnistä lukitustoiminnot luotettavasta taustajärjestelmästä (lisää/poista aika, jäädytä/vapauta jäädytys, asetusten päivitys)
  • Käynnistä tehtävät ja hygieniatoimenpiteet (task.assign, task.start_timer, task.complete, hygienic_unlock.start)
  • Lähetä säännöllisiä toimintoja laskureilla/tahdinnopeuden tuella
  • Lähetä tuettujen laitekomentoja, kun niitä on saatavilla
  • Kirjoita mukautettuja laajennuslokin merkintöjä lukitushistoriaa varten

Mitä voit rakentaa

Oikea ominaisuusjoukko riippuu siitä, missä luottamus sijaitsee.

Vain käyttöliittymään tarkoitetut iframe-laajennukset voivat rakentaa käyttöliittymälähtöisiä kokemuksia, jotka eivät vaadi luotettua lukitusmutaatiota:

  • Määritä sivut, jotka keräävät laajennusten kokoonpanotiedot
  • Istunnon kontekstia lukevat kojelaudat
  • Pulmapelien, tarkistuslistojen tai pelien käyttöliittymät, jotka lukevat istunnon tilan ja lähettävät vahvistetun edistymisen taustajärjestelmän kautta
  • Mediapohjaiset työnkulut, jotka lukevat Chastify:n jo tallentamia laajennustiedostoja
  • Kotisivun toimintojen aloituskohdat, jotka avaavat iframesi tarkoituksella

Palvelimen tukemat laajennukset voivat rakentaa lukitukseen vaikuttavia ominaisuuksia, koska taustajärjestelmäsi tarkistaa tulokset ennen etuoikeutettujen API-rajapintojen kutsumista:

  • Tehtävä- tai tapajärjestelmät, joilla on avausvaatimuksia
  • Päivittäiset tai viikoittaiset vaatimukset ja aikataulutetut rangaistukset jäädä väliin
  • Pelit, jotka palkitsevat onnistumisesta tai rankaisevat epäonnistumisesta lukitusajan muutoksilla
  • Vahvistusprosessit, jotka poistavat lukituksen avaamisen estäjät palvelinpuolen vahvistuksen jälkeen
  • Laitehallinnan rinnakkaistyönkulut tuettujen laitekomentojen avulla
  • Webhook/tietokanta-työnkulut, jotka pitävät laajennuksen tilan iframen ulkopuolella

Ulkoiset ohjelmat on tarkoitettu oman aktiivisen lukkosi yksityiseen automatisointiin:

  • Paikalliset skriptit
  • Henkilökohtaiset kojelaudat
  • Automaatiotyökalut, jotka käyttävät käyttäjäkohtaista DEV-avainta

Valitse tilasi

Valitse jokin näistä tiloista:

  1. Hosted iframe extension: isännöi staattista iframe-käyttöliittymää Cloudflare Pagesissa tai vastaavassa palvelussa. Käytä siltaa asennukseen, istunnon kontekstiin ja turvallisiin lukuihin. Älä käytä tätä tilaa yksinään tilakirjoituksiin, palkintoihin, rangaistuksiin, lukituksen avaamiseen tai luotettujen vaatimusten edistymiseen.
  2. Server-backed extension: isännöi iframe-käyttöliittymää ja suorita oma taustajärjestelmäsi. iframe lähettää käynnistyskoodin mainToken taustajärjestelmällesi, ja taustajärjestelmäsi kutsuu Chastify Extension API:a sovelluskohtaisella kehittäjä-API-avaimella ja x-chastify-main-token:lla. Käytä tätä tilaa etuoikeutettuihin toimintoihin, estotoimintojen avaamiseen, luotettavaan edistymiseen, palkintoihin, rangaistuksiin, webhookkeihin ja ulkoisiin tietokantoihin.
  3. External API & Programs: käytä käyttäjäkohtaista DEV-avainta skripteille, paikallisille ohjelmille tai automaatioille, jotka ohjaavat omaa aktiivista lukitustasi. Tämä ei ole tila, jota kolmannen osapuolen käyttäjät voivat käyttää laajennuksesi asentamiseen.

Jos testaat nopeasti, aloita iframe-tilalla käyttöliittymää ja turvallisia lukuja varten. Lisää taustajärjestelmä ennen tilakirjoitusten, luotettujen palkintojen, aikamuutosten, aikataulutettujen vaatimusten edistymisen tai lukituksen avaamisen estävien toimintojen suorittamisen käyttöönottoa.

caution

Iframe-koodi ei ole luotettavuusraja. Käyttäjä voi tarkastaa ja toistaa kaiken iframe-kehykselle näkyvän, mukaan lukien hash-hyötykuormat ja käynnistystunnukset.

Ensimmäiset 10 minuuttia (Iframe-tila)

  1. Lue location.hash-hyötykuorma ZXQTER0ZXQ-iframe-kehyksestä.
  2. Luo siltauspyyntö kohteelle session.get.
  3. Vahvista vastaus koodilla type: "chastify:ext:resp" ja ok: true.
  4. Testitila lukee koodilla state.get.
  5. Lisää automaattinen koon muuttaminen + teeman tuki, jotta iframe toimii oikein käyttöliittymässä.

Teeman tuki on osa tuotantovalmiita iframe-kehyksiä. Chastify välittää ui-arvot käynnistyshajautusarvossa ja lähettää reaaliaikaisia ​​teemapäivityksiä iframen ollessa auki. Katso Iframe Theming vaalean/tumman esimerkkejä ja kontrastin säilyttäviä Tailwind-kuvioita varten.

Vaaditut hyötykuorman arvot:

  • bridge.nonce
  • bridge.parentOrigin
  • sessionId
  • lockId

Esimerkki siltapyynnöstä:

{
"type": "chastify:ext:req",
"v": 1,
"id": "request-id", // unique id per request
"nonce": "nonce-from-hash",
"action": "session.get",
"payload": {}
}

Esimerkki sillan vastauksesta:

{
"type": "chastify:ext:resp",
"v": 1,
"id": "request-id",
"ok": true,
"data": {}
}

Keskeiset toiminnot, jotka on opittava ensin

  • session.get
  • state.get
    Lue laajennuksen omistama JSON-tallennustila lukitusistuntoa varten. Kirjoita tila taustajärjestelmästäsi kehittäjän API-tunnuksilla.
  • files.capabilities, files.list, files.get Käytä tiedostotallennuslukuja binäärimedialle, kuten palapelikuville tai luoduille esikatseluille. Tallenna tiedostotunnukset taustakirjoitettuun tilaan ja päivitä sitten allekirjoitetut URL-osoitteet koodilla files.get.
  • metadata.get Lue lukitusistunnon lukituksen avauksen estäjät ja laajennuskortin kotitoiminnot/-aikeet.
  • regularActions.get

Istuntomutaatiot, kuten tilakirjoitukset, tavallisten toimintojen lähettäminen, ajonaikaisten tiedostojen lataus/poisto, aikamuutokset, estopäivitysten lukituksen avaaminen, tehtävien suorittaminen, hygienian käynnistykset ja laitekomennot, on kutsuttava taustajärjestelmästäsi kehittäjän API-avaimella. Selaimen iframe-koodiin ei luoteta näissä toiminnoissa.

Täydelliset API-URL-osoitteet (tuettu)

Perusverkkotunnus: https://chastify.net

Laajennusistunnon API:t (/api/extensions/*)

Näillä reiteillä on erilaiset käyttötavat. Älä käsittele koko /api/extensions/*-pintaa iframe-turvallisena.

Turvalliset iframe-siltareitit reititetään Chastify-pääobjektin kautta postMessage-siltapyyntöjen jälkeen:

  • GET https://chastify.net/api/extensions/sessions/:sessionId
  • GET https://chastify.net/api/extensions/sessions/:sessionId/state
  • GET https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • GET https://chastify.net/api/extensions/sessions/:sessionId/regular-actions
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files/capabilities
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId

Vain taustajärjestelmän asennettujen laajennusten reitit vaativat sovelluskohtaisen kehittäjän API-avaimen ja iframe-käynnistystunnuksen:

Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEY
x-chastify-main-token: MAIN_TOKEN_FROM_IFRAME_HASH
info

Tämä kahden tunnuksen malli sitoo taustapyynnön sekä laajennuksen kehittäjään (Authorization) että parhaillaan avoinna olevaan laajennusistuntoon (x-chastify-main-token).

  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • PUT https://chastify.net/api/extensions/sessions/:sessionId/state
  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/state
  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/regular-actions/config
  • POST https://chastify.net/api/extensions/sessions/:sessionId/regular-actions
  • POST https://chastify.net/api/extensions/sessions/:sessionId/files
  • DELETE https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId
  • POST https://chastify.net/api/extensions/sessions/:sessionId/logs/custom
  • POST https://chastify.net/api/extensions/sessions/:sessionId/notifications/custom
  • POST https://chastify.net/api/extensions/sessions/:sessionId/device-command
  • POST https://chastify.net/api/extensions/sessions/:sessionId/action
  • POST https://chastify.net/api/extensions/sessions/:sessionId/requirements/progress

Taustajärjestelmän token-APIt (/api/apps/v1/*)

Käytä koodia Authorization: Bearer <user-wide DEV token>. Nämä päätepisteet hallitsevat tunnuksen omistajan omia aktiivisia lukitusistuntoja ja on tarkoitettu ulkoisille API-skripteille/ohjelmille, eivät asennetuille kolmannen osapuolen laajennusistunnoille.

  • GET https://chastify.net/api/apps/v1/session
  • GET https://chastify.net/api/apps/v1/state
  • PUT https://chastify.net/api/apps/v1/state
  • PATCH https://chastify.net/api/apps/v1/state
  • GET https://chastify.net/api/apps/v1/metadata
  • PATCH https://chastify.net/api/apps/v1/metadata
  • POST https://chastify.net/api/apps/v1/action
  • POST https://chastify.net/api/apps/v1/lock/apply-time
  • POST https://chastify.net/api/apps/v1/lock/freeze
  • POST https://chastify.net/api/apps/v1/lock/unfreeze
  • POST https://chastify.net/api/apps/v1/logs/custom

Iframe Bridgen komennot

Siltakomentohyötykuormat lähetetään iframe-kehyksen (chastify:ext:req) avulla ja ne reititetään Chastify-pääobjektin kautta. Silta on tarkoituksella rajoitettu safe/session-käyttöliittymätoimintoihin.

  • session.get -> GET https://chastify.net/api/extensions/sessions/:sessionId
  • state.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/state
  • files.capabilities -> GET https://chastify.net/api/extensions/sessions/:sessionId/files/capabilities
  • files.list -> GET https://chastify.net/api/extensions/sessions/:sessionId/files
  • files.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId ja { "fileId": "file_record_id" }
  • metadata.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • regularActions.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/regular-actions

Istuntomutaatiopäätepisteet ovat suoria taustajärjestelmän API-kutsuja, eivät iframe-siltakomentoja. Tämä sisältää tilakirjoitukset, tavallisen toiminnon lähettämisen ja ajonaikaisen tiedoston latauksen/poiston, koska käyttäjä voi hallita iframe-koodia.

Taustajärjestelmän istunto-API-esimerkkejä

Taustajärjestelmän on lähetettävä molemmat otsikot asennettujen laajennusten etuoikeutetuille kutsuille:

Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEY
x-chastify-main-token: MAIN_TOKEN_FROM_IFRAME_HASH

Esimerkkejä taustajärjestelmän toimista:

  • metadata.patch -> PATCH /api/extensions/sessions/:sessionId/metadata
  • regularActions.submit -> POST /api/extensions/sessions/:sessionId/regular-actions
  • files.upload -> POST /api/extensions/sessions/:sessionId/files
  • files.delete -> DELETE /api/extensions/sessions/:sessionId/files/:fileId
  • lock.applyTime -> POST /api/extensions/sessions/:sessionId/action ja { "name": "add_time", "params": <deltaSeconds> }
  • lock.freeze -> POST /api/extensions/sessions/:sessionId/action ja { "name": "freeze", "params": { "durationSeconds": 900 } }
  • lock.unfreeze -> POST /api/extensions/sessions/:sessionId/action ja { "name": "unfreeze", "params": {} }
  • lock.settings.patch -> POST /api/extensions/sessions/:sessionId/action ja { "name": "settings.patch", "params": { ... } }
  • task.assign -> POST /api/extensions/sessions/:sessionId/action
  • task.start_timer -> POST /api/extensions/sessions/:sessionId/action ja { "name": "task.start_timer", "params": {} }
  • task.complete -> POST /api/extensions/sessions/:sessionId/action ja { "name": "task.complete", "params": { "successful": true } }
  • hygienic_unlock.start -> POST /api/extensions/sessions/:sessionId/action ja { "name": "hygienic_unlock.start", "params": { "durationSeconds": 900 } }
  • pillory.end -> POST /api/extensions/sessions/:sessionId/action ja { "name": "pillory.end", "params": {} }
  • device.command -> POST /api/extensions/sessions/:sessionId/device-command
  • logs.custom -> POST /api/extensions/sessions/:sessionId/logs/custom
  • notifications.custom -> POST /api/extensions/sessions/:sessionId/notifications/custom
  • requirements.progress -> POST /api/extensions/sessions/:sessionId/requirements/progress

Tunnuksen, laajuuden, peruutuksen ja auditointikäyttäytymisen

Käytä oikeaa tunnusta oikeaan luottamusrajaan.

warning

Kehittäjän API-avaimet ovat salaisia. Jos jokin niistä paljastuu selainkoodille, peruuta se välittömästi ja vaihda taustajärjestelmän ympäristömuuttujaa.

Iframe-käynnistystunnus (mainToken)

  • Toimitetaan iframe-hajautusarvossa, kun käyttäjä avaa asennetun laajennuksen sivun.
  • Selainnäkyvä rakenteensa ansiosta. Se tunnistaa avatun laajennusistunnon, mutta se ei ole taustajärjestelmän salaisuus.
  • Lyhytaikainen. Nykyiset käynnistystunnukset vanhenevat 10 tunnin kuluttua; päivitä avaamalla laajennussivu uudelleen.
  • Pakollinen koodina x-chastify-main-token, kun taustajärjestelmäsi kutsuu asennettujen laajennusten istuntoreittejä, jotta Chastify voi sitoa taustajärjestelmän pyynnön käyttäjään/istuntoon, joka avasi laajennuksen.
  • Ei saa käyttää yksinään aikamuutosten valtuuttamiseen, eston suorittamisen avaamiseen, tehtävien suorittamiseen, laitekomentojen, suorituksenaikaisten latausten/poistojen, mukautettujen lokien tai mukautettujen ilmoitusten hyväksymiseen.

Sovelluslaajuinen kehittäjän API-avain

  • Luotu kehittäjän käyttöliittymästä yhdelle laajennussovellukselle.
  • Vain taustajärjestelmälle tarkoitettu salaisuus. Älä koskaan lisää sitä iframe JavaScriptiin, mobiilisovelluspaketteihin, staattisiin hosting-määrityksiin tai selaimella luettaviin lokeihin.
  • Käytetään yhdessä Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEY:n ja x-chastify-main-token:n kanssa.
  • Voi kutsua asennetun laajennuksen istunnon API-rajapintoja vain istunnoille, jotka vastaavat laajennussovellusta ja käynnistystunnusta.
  • Ei vanhene automaattisesti. Peruuta se välittömästi, jos se paljastuu, ja vaihda taustajärjestelmän ympäristömuuttujaa.

Käyttäjäkohtainen kehittäjän API-avain

  • Luotu kehittäjän käyttöliittymästä valitsematta laajennussovellusta.
  • Vain taustajärjestelmälle tarkoitettu salaisuus koodille /api/apps/v1/*.
  • Hallitsee avaimen omistajan omia nykyisiä/tulevia aktiivisia lukitusistuntoja.
  • Ei voida käyttää asennetun kolmannen osapuolen laajennuksen taustajärjestelmän tunnistetietona.

Peruutus

  • Peruutetut kehittäjän API-avaimet estävät uusien pyyntöjen valtuuttamisen.
  • Peruutetut avaimet voidaan poistaa pysyvästi kehittäjän käyttöliittymästä.
  • Uudet iframe-julkaisut saavat uudet käynnistystunnukset. Älä säilytä mainToken-koodia pitkäaikaisena tunnistetietona.

Vaikutusalueet ja roolit

  • Laajennussovellusten laajuudet kuvaavat, mitä sovellus saa pyytää.
  • Turvalliset iframe-siltakutsut rajoittuvat käyttöliittymän käynnistykseen, istuntojen lukuihin, laajennuksen omistamaan tilaan, metatietojen lukuihin, tavallisten toimintojen lukuihin ja tiedostojen lukuihin.
  • Etuoikeutetut asennusistunnon mutaatiot vaativat taustajärjestelmän tunnistetiedot, vaikka laajennuksella olisi vastaava laajennus.
  • Rooliherkät toiminnot voidaan silti hylätä sen perusteella, kuuluuko laukaisu käyttäjälle vai avaimenhaltijalle.

Tarkastus ja rajoitukset

  • Kehittäjän API-avaimen viimeksi käytetyn metadatan päivitetään, kun avaimia käytetään.
  • Etuoikeutettujen toimintojen reitit ovat nopeusrajoitettuja ja palauttavat eksplisiittisiä virheitä, kuten server_credentials_required tai user_wide_dev_key_required, kun käytetään väärää tunnistetietotyyppiä.
  • Mukautetut lokit kirjoittavat näkyviä lukitushistoriamerkintöjä.
  • Mukautetut ilmoitukset luovat Chastify-ilmoituksia pyydetylle kohteelle.
  • Jokaisen etuoikeutetun laajennuksen mutaation täydellinen auditointikattavuus seurataan tuotantoa vahvistavana osana.

Tuetut komentoarvot

/api/extensions/sessions/:sessionId/action ja /api/apps/v1/action

name tukee:

  • add_time
  • remove_time
  • freeze
  • pillory
  • unfreeze
  • toggle_freeze
  • settings.patch
  • task.assign
  • task.start_timer
  • task.complete
  • hygienic_unlock.start
  • pillory.end

Toimintorajoitukset:

  • Tehtävätoiminnot edellyttävät, että Tehtävät-laajennus/moduuli on käytössä lukossa.
  • hygienic_unlock.start edellyttää, että hygieeninen avaus on käytössä eikä aktiivista hygieniasessio ole käytössä.

session.get-lukitustietojen apuohjelmat

session.get / GET /api/apps/v1/session sisältää myös lockData:n, jossa on ajonaikaisesti helppokäyttöisiä totuusarvoja, numeroita ja merkkijonoja sääntömoottoreille.

Esimerkkejä:

  • totuusarvot: frozen, unlockable, trusted, taskAssigned (true, kun avoin TaskRun on olemassa)
  • numerot: timeLockedSeconds, timeRemainingSeconds, maxTimeRemainingSeconds, taskPoints
  • merkkijonot: lockTitle, käyttäjän/avaimenhaltijan profiilikentät

Tietosuoja:

  • wearerLastSeenTimestamp ja keyholderLastSeenTimestamp ovat null, kun kyseinen käyttäjä on poistanut online-tilan käytöstä (showOnlineStatus === false).

Laitekomennot

Laajennusistunnot voivat käyttää istuntopohjaista päätepistettä:

POST /api/extensions/sessions/:sessionId/device-command

Ulkoiset ohjelmat, joilla on DEV-token, voivat käyttää yksinkertaisempaa v1-päätepistettä (istuntotunnusta ei tarvita):

POST /api/apps/v1/device-command

Molemmat hyväksyvät saman pyyntörungon ja palauttavat saman vastauksen. Katso lisätietoja kohdasta Ulkoinen API ja ohjelmat.

Jos laajennuksessasi on asennus-/määrityskäyttöliittymä:

  1. Ylätaso lähettää chastify:ext:setup:init:n (tallennettu kokoonpano + konteksti).
  2. Asennuskehyksesi palauttaa päivitykset koodilla chastify:ext:setup:config.
  3. Vanhempi voi pyytää nykyistä konfiguraatiota koodilla chastify:ext:setup:get_config.

Backend Token Flow (kun tarvitset palvelinpuolen kutsuja)

Yksinkertaisille skripteille ja ulkoisille ohjelmille käytä käyttäjäkohtaista DEV-tunnusta Developer API -sivulta. Katso Ulkoinen API ja ohjelmat.

Oletusvirta laajennuksen iframe-tilassa:

  1. Chastify myöntää lyhytaikaisen, selaimessa näkyvän käynnistystunnuksen aktiiviselle laajennusistunnolle.
  2. Käynnistystunnus on upotettu iframe-hajautushyötykuormaan muodossa mainToken.
  3. IFramesi välittää mainToken-koodin taustajärjestelmällesi.
  4. Taustajärjestelmäsi kutsuu https://chastify.net/api/extensions/sessions/:sessionId/*:ta Authorization: Bearer <app-scoped Developer API key>:n ja x-chastify-main-token: <mainToken>:n avulla.

Älä lähetä kehittäjän API-avaimia iframe-frameen/selainkoodiin. mainToken tunnistaa avatun laajennusistunnon; se ei ole taustajärjestelmän salaisuus, eikä sitä voida käyttää yksinään etuoikeutettuihin toimintoihin.

Manuaalinen varatoiminto:

  • Jos sinun täytyy noutaa/kiertää iframe-käynnistystunnusta eksplisiittisesti ensimmäisen osapuolen käyttöliittymästä, kutsu GET https://chastify.net/api/extensions/sessions/:sessionId/auth:ta.

Käytä taustatilaa, jos tarvitset ajoitettuja töitä, webhookeja tai automaatiota, kun Chastify-sivu ei ole auki. Nykyiset asennetun laajennuksen istuntomutaatiot vaativat edelleen voimassa olevan 10 tunnin iframe-käynnistystunnuksen, joten valvomattomien töiden tulisi tallentaa odottavat todisteet ja lähettää ne seuraavan voimassa olevan käynnistyksen yhteydessä, ellet käytä taustalla suoritettavaa ensimmäisen osapuolen/sisäänrakennettua palvelintyönkulkua.

info

Täysin valvomattoman tuotantotoiminnan kannalta suosi sisäänrakennettua/ensimmäisen osapuolen palvelintyönkulkua tai odota eksplisiittisiä taustalla suoritettavia laajennusten myöntämisiä. Sovelluskohtaiset istunto-API-rajapinnat ovat tällä hetkellä käynnistystunnussidonnaisia.

Backend vs. Cloudflare-sivut (ei palvelinta)

Käytä Cloudflare Pagesia (ei taustapalvelinta), kun:

  • Haluat helpoimman ja halvimman asennuksen (voidaan isännöidä ilmaiseksi).
  • Tarvitset käyttöliittymän ohjaamia toimintoja vain, kun käyttäjä on aktiivisesti laajennussivullasi.
  • Palvelimelle tallennettuja laajennuksen tilakirjoituksia ei tarvita.
  • Teet prototyyppejä tai rakennat kevyitä laajennuksia nopeasti.

Paikallinen testausesimerkki (PowerShell):

cloudflared tunnel --url http://localhost:5174

Käytä luotua julkista URL-osoitetta iframe-URL-osoitteena testauksen aikana.

Käytä taustapalvelinta, kun:

  • Tarvitset ajoitettuja töitä (cron-tyyppinen toiminta).
  • Tarvitset webhookeja tai ulkoisia integraatioita.
  • Tarvitset automaatiota/taustakäsittelyä, kun laajennussivulla ei ole ketään.
  • Tarvitset palvelimen ohjaamia työnkulkuja, joiden on toimittava jatkuvasti.

Tärkeä rajoitus ilman taustajärjestelmää:

  • Ei taustalla suoritettavaa suoritusta. Laajennus voi suorittaa toimintoja vain, kun käyttäjällä on laajennuksen iframe auki ja hän on vuorovaikutuksessa sen kanssa.

Yleisiä ongelmia

  • 403 extension_not_enabled: laajennusta ei ole otettu käyttöön tälle lukolle.
  • 409 lock_ended: lukitus ei ole enää aktiivinen.
  • 429: nopeusraja saavutettu.
  • Ei vastauksia iframessa: tarkista nonce, targetOrigin (parentOrigin) ja sallitut alkuperät.

Seuraavat oppaat