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 utilisezcurl -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
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)
import { ogImageUrl } from "$lib/fastog.js";
const url = ogImageUrl(params, {
key: process.env.FASTOG_API_KEY,
secret: process.env.FASTOG_HMAC_SECRET,
});
PHP
use FastOg\FastOg;
$url = FastOg::signedUrl($params, getenv('FASTOG_API_KEY'), getenv('FASTOG_HMAC_SECRET'));
Ruby / Rails
url = FastOg.signed_url(params, ENV.fetch("FASTOG_API_KEY"), ENV.fetch("FASTOG_HMAC_SECRET"))
Python (Django / FastAPI / Flask)
import fastog
url = fastog.signed_url(params, os.environ["FASTOG_API_KEY"], os.environ["FASTOG_HMAC_SECRET"])
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 dekey[]=/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é
secretest exclusivement côté serveur — jamais dans le navigateur, jamais dans un script CDN public.keyest 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.