Hopp til innhold
skribbskribb

Utviklere

Autentisering

Én nøkkel, én publikasjon og bare det du har huket av for.
Alle sidene

Nøkkelen

Nøkkelen sendes som bearer-token på hver forespørsel. Den ser slik ut: skribb_sk_ etterfulgt av 43 tegn.

Har du flere publikasjoner, lager du en nøkkel per publikasjon.

Mister du en nøkkel, trekker du den tilbake under Innstillinger. Den slutter å virke med det samme, og du lager en ny. Innstillinger viser når hver nøkkel sist ble brukt.

Se nøklene dine →

Tilganger

Hver rute krever én bestemt tilgang. Mangler nøkkelen den, får du 403, også når nøkkelen ellers er gyldig. Koden sier hvilken tilgang som manglet. Skrivetilgang gir ikke lesetilgang.

Publikasjonen

  • Les tittel, undertittel, bunntekst, synlighet i søk og bedriftsprofilenpublication:read
  • Endre tittel, undertittel, bunntekst, synlighet i søk og bedriftsprofilenpublication:write

Egen adresse

  • Les domenet publikasjonen svarer på, og DNS-oppsettetdomain:read

Utseende

  • Les tema, aksentfarge og skrifter på publikasjonenstyle:read
  • Endre tema, aksentfarge og skrifter på publikasjonenstyle:write

Produkter og lager

  • Les produkter og lagerbeholdningproducts:read
  • Opprett og endre produkter, juster lagerproducts:write

Bestillinger

  • Les bestillingerorders:read
  • Merk som sendt og refunderorders:write

Kampanjer

  • Les rabattkoder, tilbud og hvor mye de er bruktcampaigns:read
  • Lag, endre og avslutt rabattkoder og tilbudcampaigns:write

Butikkinnstillinger

  • Les frakt og nedlastingsgrensershop-settings:read
  • Endre frakt og nedlastingsgrensershop-settings:write

Innhold

  • Les innleggposts:read
  • Opprett og endre innleggposts:write
  • Les sider og menyen på nettstedetpages:read
  • Opprett og endre sider, sett menyen øverstpages:write

Nyhetsbrev

  • Les hvordan nyhetsbrevet ser ut og hvem det går tilnewsletter:read
  • Endre utseendet, hilsenen, signaturen og svaradressen på nyhetsbrevetnewsletter:write
  • Send e-post til abonnentene: et publisert innlegg, eller en utsendingnewsletter:send
  • Les utsendinger, planlagte og sendtebroadcasts:read
  • Skriv og planlegg utsendinger, og avlys dembroadcasts:write

Abonnenter

  • Les abonnentlistensubscribers:read
  • Be en e-postadresse om å bekrefte abonnement, og meld av abonnentersubscribers:write

Innsikt

  • Les lesertall per innlegganalytics:read

Meldinger

  • Les kontaktskjema og chatmessages:read
  • Svar i chat, arkiver og slett meldingermessages:write

Avtaler

  • Les forespørsler om avtaler og ledige tiderbookings:read
  • Bekreft, avslå, avlys og slett avtaler, og åpne og steng tiderbookings:write

Filer

  • Last opp bilder og nedlastingsfilermedia:write

Tilgang på vegne av en skaper

I stedet registrerer programmet ditt seg én gang og sender skaperen hit for å godkjenne. Tokenet kommer rett til deg, og det varer én time.

1. Registrer klienten. Du får en client_id tilbake. Det følger ingen client_secret med. PKCE er påkrevd.

Registrer klienten
curl -X POST https://api.skribb.no/oauth/register \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "Lagerstyring AS",
    "redirect_uris": ["https://lagerstyring.example/skribb/callback"],
    "client_uri": "https://lagerstyring.example"
  }'

Adressene i redirect_uris må stemme på tegnet når koden skal leveres. De kan være https, http mot 127.0.0.1 eller [::1] for et program som kjører på maskinen til brukeren, eller et eget URI-skjema på formen no.eksempel.app:/callback. Adresser på skribb.no og skjemaer som begynner med no.skribb, er forbeholdt skribbs egne apper.

2. Send skaperen til godkjenningen på https://skribb.no/gi-tilgang, med response_type=code, client_id, redirect_uri, scope som en mellomromsdelt liste, en state du kjenner igjen, og en code_challenge med code_challenge_method=S256. Skaperen ser navnet du registrerte, hvilken publikasjon tilgangen gjelder og hva hver enkelt tilgang betyr. Sier de nei, får du det tilbake som ?error=access_denied.

3. Bytt koden i et token. Koden lander på redirect_uri, varer ti minutter og kan brukes én gang. Bruker noen den om igjen, trekker vi tilbake tokenet den alt hadde laget.

Bytt koden i et token
curl -X POST https://api.skribb.no/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d grant_type=authorization_code \
  -d code="$CODE" \
  -d client_id="$CLIENT_ID" \
  -d redirect_uri=https://lagerstyring.example/skribb/callback \
  -d code_verifier="$VERIFIER"

Tokenet sendes som bearer på hver forespørsel, akkurat som en nøkkel skaperen har laget selv, og det når bare den ene publikasjonen de godkjente. Sammen med det får du et refresh_token, som er det du fornyer med.

4. Forny før tokenet går ut.

Forny tokenet
curl -X POST https://api.skribb.no/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d grant_type=refresh_token \
  -d refresh_token="$REFRESH_TOKEN" \
  -d client_id="$CLIENT_ID"

Du får et nytt token og et nytt refresh_token. Det gamle slutter å virke med én gang, så lagre det nye. Brukes det samme refresh_token to ganger, trekker vi tilbake hele tilgangen, og skaperen må godkjenne på nytt.

Fornyelsen varer i 30 dager fra sist du brukte den, og fristen settes på nytt hver gang. Vil du ha et token med færre tilganger enn de godkjente, sender du scope med. Du kan be om mindre, aldri mer, og selve godkjenningen ligger like fullstendig etterpå.

5. Lever tilgangen tilbake når brukeren kobler fra hos deg. Ellers står den igjen i listen til skaperen som om noe fortsatt bruker den.

Trekk tilbake tilgangen
curl -X POST https://api.skribb.no/oauth/revoke \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d token="$REFRESH_TOKEN" \
  -d client_id="$CLIENT_ID"

Sender du et refresh_token, ryker hele tilgangen. Sender du et access-token, ryker bare det ene. Du får 200 uansett, også for et token vi ikke kjenner igjen. Skaperen finner tilgangen igjen under Innstillinger og kan trekke den tilbake når som helst.

Maskinlesbart: https://api.skribb.no/.well-known/oauth-authorization-server beskriver flyten steg for steg, og https://api.skribb.no/.well-known/oauth-protected-resource sier hva som er beskyttet og hvem som gir tilgang til det. Et 401 herfra peker på den siste i WWW-Authenticate.

En liten klient

Kodeeksemplene i referansen bruker denne, én gang per språk. Sett nøkkelen i miljøvariabelen SKRIBB_API_KEY og lim inn klienten under.

export SKRIBB_API_KEY="skribb_sk_…"

# Så nøkkelen og adressen ikke gjentas på hver eneste linje.
skribb() {
  local path="$1"; shift
  curl -sS -H "Authorization: Bearer $SKRIBB_API_KEY" "https://api.skribb.no/v1$path" "$@"
}
  • Python: krever requests.
  • C#: krever .NET 8.