Emne

FastOG SDK — Download & brug

Én fil pr. sprog, nul afhængigheder, ingen pakkehåndtering nødvendig. Download den nedenfor (eller curl den fra vores CDN) og kopier den ind i dit projekt (kun server-side). Vedligeholdes som v1 lige her — når kontrakten ændres, opdaterer vi denne side og de downloadbare filer sammen. For den fulde signeringskontrakt + håndlavede implementeringer på ethvert sprog, se Agent & LLM-integration.

Downloads

Vælg et sprog, og klik på download (eller højreklik → Gem som):

Sprog Download
Node.js (CommonJS) ⬇ fastog.js
Svelte / SvelteKit (ESM) ⬇ fastog.js
PHP ⬇ FastOg.php
Ruby / Rails ⬇ fastog.rb
Python (Django / FastAPI / Flask) ⬇ fastog.py
Go ⬇ fastog.go
Express (Node) ⬇ fastog.js
Next.js (App Router) ⬇ fastog.js
Astro ⬇ fastog.js
Vue / Nuxt ⬇ fastog.js

Disse links peger på /sdk/<file>, som serverer filen som en download — eller brug curl -O https://fastog.com/sdk/<file>, hvis du foretrækker kommandolinjen.

Vue, Next.js, Astro og Express kører på Node — de deler de samme testede signer-filer (CommonJS til Express, ESM til resten); kun brugen/README adskiller sig. Hvert frameworks sdk/<name>/README.md viser den præcise integration.

Hver fil er hele SDK'et. Kopier den ind i dit projekt, require/import den, og så er du færdig.

Anvendelse

Node.js

js
const { ogImageUrl } = require("./fastog.js");
const url = ogImageUrl(
    {
        template: "blog",
        title: "Hello World",
        features: ["Free shipping", "30-day returns"],
    },
    { key: process.env.FASTOG_API_KEY, secret: process.env.FASTOG_HMAC_SECRET },
);

SvelteKit (i +page.server.js / +layout.server.js)

js
import { ogImageUrl } from "$lib/fastog.js";
const url = ogImageUrl(params, {
    key: process.env.FASTOG_API_KEY,
    secret: process.env.FASTOG_HMAC_SECRET,
});

PHP

php
use FastOg\FastOg;
$url = FastOg::signedUrl($params, getenv('FASTOG_API_KEY'), getenv('FASTOG_HMAC_SECRET'));

Ruby / Rails

ruby
url = FastOg.signed_url(params, ENV.fetch("FASTOG_API_KEY"), ENV.fetch("FASTOG_HMAC_SECRET"))

Python (Django / FastAPI / Flask)

python
import fastog
url = fastog.signed_url(params, os.environ["FASTOG_API_KEY"], os.environ["FASTOG_HMAC_SECRET"])

Go

go
url := fastog.SignedURL(params, os.Getenv("FASTOG_API_KEY"), os.Getenv("FASTOG_HMAC_SECRET"))

Express / Next.js / Astro / Vue (Node) — importer underskriveren, kald ogImageUrl(params, { key, secret }) i din serverkode, og gengiv URL'en i head-sektionen. Se hvert frameworks sdk/<name>/README.md.

Placer url i <meta property="og:image">. Crawlere henter den via GET — edge-cachet, én gengivelse pr. unikt billede.

Versionering

Dette er v1, og det vedligeholdes på samme sted. Når kontrakten ændres, opdaterer vi filerne og denne side sammen (v2, v3, …) — du opdaterer ved at hente dem igen. Der er intet pakkeregister at synkronisere, ingen semver-ceremonier og ingen uoverensstemmelser mellem flere pakker.

Sådan fungerer det

canonical = sorted enc(key)=enc(value) pairs of every param except `s`, including `key`
message   = "GET/api/v1/og" + "\n" + canonical
signature = hex(HMAC-SHA256(message, secret))
  • Enhver ændring af en parameter ugyldiggør signaturen → 401, ingen rendering, ingen kvotetælling.
  • Identiske parametre → identisk URL → kan cachelagres ved kanten (edge) for evigt.
  • Array-parametre (features) udsendes som key[]= / key[0]=, så serveren afkoder dem korrekt.
  • Tilbagekald ved at rotere nøglens hemmelighed.

Verifikation

Alle SDK'er testes mod den samme gyldne vektor (golden vector), som genereres af FastOG-serveren:

canonical = features=30-day%20returns&features=Free%20shipping&key=sk_test123&template=blog&title=Hello%20World
signature = a79232b15b45002aee76174f542e0a661b37cb1259df01e263c952ca4052a54d

Hvis din kopi producerer den signatur for disse parametre, vil serveren acceptere dine URL'er.

Sikkerhed

  • secret er kun til serveren — aldrig i browseren, aldrig i et offentligt CDN-script.
  • key er offentlig (den vises i URL'er) — det er forventet.
  • Signér på din server; det er FastOG-URL'en, du indlejrer, ikke hemmeligheden.

Prøv det gratis – ingen tilmelding nødvendig

Forhåndsvis og test dynamiske OG-billeder på få sekunder.

Åbn den gratis OG-billedtester

A BeCaSimulations site