Sujet

SDK FastOG — Téléchargement et utilisation

Un fichier par langage, zéro dépendance, aucun gestionnaire de paquets requis. Téléchargez-le ci-dessous (ou curl depuis notre CDN) et copiez-le dans votre projet (côté serveur uniquement). Maintenu en v1 ici même — lorsque le contrat change, nous mettons à jour cette page et les fichiers téléchargeables ensemble. Pour le contrat de signature complet et les implémentations artisanales dans n'importe quel langage, voir Intégration Agent et LLM.

Téléchargements

Choisissez une langue et cliquez sur télécharger (ou clic droit → Enregistrer sous) :

Langue Téléchargement
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

Ces liens pointent vers /sdk/<file>, qui sert le fichier en téléchargement — ou utilisez curl -O https://fastog.com/sdk/<file> si vous préférez la ligne de commande.

Vue, Next.js, Astro et Express fonctionnent sur Node — ils partagent les mêmes fichiers de signature testés (CommonJS pour Express, ESM pour les autres) ; seuls l'utilisation et le README diffèrent. Le sdk/<name>/README.md de chaque framework montre l'intégration exacte.

Chaque fichier constitue l'intégralité du SDK. Copiez-le dans votre projet, require/import-le, c'est terminé.

Utilisation

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 (dans +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) — importez le signer, appelez ogImageUrl(params, { key, secret }) dans votre code serveur, puis affichez l'URL dans le head. Consultez la sdk/<name>/README.md de chaque framework.

Placez url dans <meta property="og:image">. Les crawlers le récupèrent via GET — mise en cache en périphérie, un seul rendu par image unique.

Versionnage

Il s'agit de la v1, maintenue en l'état. Lorsque le contrat évolue, nous mettons à jour les fichiers et cette page ensemble (v2, v3, …) — vous mettez à jour en re-téléchargeant. Aucun registre de paquets à synchroniser, aucune cérémonie semver, aucune dérive multi-paquets.

Fonctionnement

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))
  • Toute modification d’un paramètre invalide la signature → 401, aucun rendu, aucun quota consommé.
  • Des paramètres identiques → une URL identique → mise en cache à la périphérie (edge) indéfiniment.
  • Les paramètres de type tableau (features) sont émis sous forme de key[]= / key[0]= afin que le serveur les décode correctement.
  • Révoquez en faisant pivoter le secret de la clé.

Vérification

Tous les SDK sont testés par rapport au même vecteur de référence (golden vector) généré par le serveur FastOG :

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

Si votre copie produit cette signature pour ces paramètres, le serveur acceptera vos URL.

Sécurité

  • secret est exclusivement côté serveur — jamais dans le navigateur, jamais dans un script CDN public.
  • key est public (il apparaît dans les URL) — c'est normal.
  • Signez sur votre serveur ; l'URL FastOG est ce que vous intégrez, pas le secret.

Essayez gratuitement — aucune inscription requise

Prévisualisez et testez des images OG dynamiques en quelques secondes.

Ouvrir le testeur d'images OG gratuit

A BeCaSimulations site