Ämne

FastOG SDK – Ladda ner och använda

En fil per språk, noll beroenden, ingen pakethanterare krävs. Ladda ner den nedan (eller curl den från vår CDN) och kopiera in den i ditt projekt (endast server-sidan). Underhålls som v1 här – när kontraktet ändras uppdaterar vi denna sida och de nedladdningsbara filerna tillsammans. För hela signeringskontraktet + handskrivna implementationer på vilket språk som helst, se Agent- och LLM-integration.

Nedladdningar

Välj ett språk och klicka på ladda ner (eller högerklicka → Spara som):

Språk Nedladdning
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

Dessa länkar går till /sdk/<file>, som levererar filen som en nedladdning — eller använd curl -O https://fastog.com/sdk/<file> om du föredrar kommandoraden.

Vue, Next.js, Astro och Express körs på Node — de delar samma testade signeringsfiler (CommonJS för Express, ESM för övriga); endast användning/README skiljer sig. Varje ramverks sdk/<name>/README.md visar den exakta integrationen.

Varje fil är hela SDK:n. Kopiera den till ditt projekt, require/import den, klart.

Användning

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) — importera signeraren, anropa ogImageUrl(params, { key, secret }) i din serverkod, rendera URL:en i head. Se varje ramverks sdk/<name>/README.md.

Lägg in url i <meta property="og:image">. Crawlers hämtar den — edge-cachad, en rendering per unik bild.

Versionshantering

Detta är v1 och det underhålls på plats. När kontraktet ändras uppdaterar vi filerna och denna sida tillsammans (v2, v3, …) — du uppdaterar genom att ladda ner igen. Inget paketregister att synkronisera, ingen semver-ceremoni, ingen drift mellan flera paket.

Så här fungerar 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))
  • Alla ändringar av en parameter ogiltigförklarar signaturen → 401, ingen rendering, ingen kvoträkning.
  • Identiska parametrar → identisk URL → cachbar i utkanten för alltid.
  • Array-parametrar (features) skickas som key[]= / key[0]= så att servern avkodar dem korrekt.
  • Återkalla genom att rotera nyckelns hemlighet.

Verifiering

Alla SDK:er testas mot samma gyllene vektor som genereras av FastOG-servern:

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

Om din kopia producerar den signaturen för dessa parametrar kommer servern att acceptera dina URL:er.

Säkerhet

  • secret är endast server-side — aldrig i webbläsaren, aldrig i ett offentligt CDN-skript.
  • key är offentlig (den visas i webbadresser) — det är förväntat.
  • Signera på din server; FastOG-URL:en är det du bäddar in, inte hemligheten.

Prova gratis – ingen registrering krävs

Förhandsgranska och testa dynamiska OG-bilder på några sekunder.

Öppna gratis OG-bildtestaren

A BeCaSimulations site