Onderwerp

FastOG SDK — Downloaden & Gebruiken

Eén bestand per taal, nul afhankelijkheden, geen pakketbeheerder nodig. Download het hieronder (of curl het van onze CDN) en kopieer het naar je project (alleen server-side). Onderhouden als v1 hier — wanneer het contract verandert, werken we deze pagina en de downloadbare bestanden samen bij. Voor het volledige ondertekeningscontract + handmatige implementaties in elke taal, zie Agent & LLM-integratie.

Downloads

Kies een taal en klik op download (of rechtsklik → Opslaan als):

Taal 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

Deze links verwijzen naar /sdk/<file>, dat het bestand als download aanbiedt — of gebruik curl -O https://fastog.com/sdk/<file> als je de voorkeur geeft aan de commandoregel.

Vue, Next.js, Astro en Express draaien op Node — ze delen dezelfde geteste signer-bestanden (CommonJS voor Express, ESM voor de rest); alleen de gebruikershandleiding/README verschilt. De sdk/<name>/README.md van elk framework toont de exacte integratie.

Elk bestand is de volledige SDK. Kopieer het naar je project, require/import het, en klaar.

Gebruik

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 (in +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) — importeer de signer, roep ogImageUrl(params, { key, secret }) aan in je servercode en render de URL in de head. Zie de sdk/<name>/README.md van elk framework.

Plaats url in <meta property="og:image">. Crawlers halen het op via GET — edge-cached, één render per unieke afbeelding.

Versiebeheer

Dit is v1 en wordt op dezelfde locatie onderhouden. Wanneer het contract wijzigt, verhogen we de bestanden en deze pagina samen (v2, v3, …) — je werkt bij door opnieuw te downloaden. Geen pakketregister om te synchroniseren, geen semver-gedoe, geen afwijkingen tussen meerdere pakketten.

Hoe het werkt

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))
  • Elke wijziging aan een parameter maakt de handtekening ongeldig → 401, geen render, geen quotumtelling.
  • Identieke parameters → identieke URL → voor altijd cachebaar aan de rand (edge).
  • Arrayparameters (features) worden uitgevoerd als key[]= / key[0]=, zodat de server ze correct decodeert.
  • Intrekken door het geheim van de sleutel te roteren.

Verificatie

Alle SDK's worden getest tegen dezelfde gouden vector die door de FastOG-server wordt gegenereerd:

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

Als jouw kopie die handtekening voor die parameters produceert, accepteert de server jouw URL's.

Beveiliging

  • secret is alleen server-side — nooit in de browser, nooit in een openbaar CDN-script.
  • key is openbaar (het verschijnt in URL's) — dat is normaal.
  • Onderteken op je server; de FastOG-URL is wat je inbedt, niet het geheim.

Probeer het gratis — geen aanmelding vereist

Bekijk en test dynamische OG-afbeeldingen in seconden.

Open de gratis OG-afbeeldingstester

A BeCaSimulations site