FastOG SDK — Lataa ja käytä
Yksi tiedosto per kieli, ei riippuvuuksia, ei paketinhallintaa. Lataa se alta (tai curl se CDN:stämme) ja kopioi se projektiisi (vain palvelinpuoli). Ylläpidetään v1-versiona täällä — kun sopimus muuttuu, päivitämme tämän sivun ja ladattavat tiedostot yhdessä. Täydellinen allekirjoitussopimus + käsin toteutetut toteutukset millä tahansa kielellä löytyvät kohdasta Agent & LLM-integraatio.
Lataukset
Valitse kieli ja paina lataa (tai napsauta hiiren oikealla painikkeella → Tallenna nimellä):
| Kieli | Lataus |
|---|---|
| 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 |
Nämä linkit osoittavat osoitteeseen
/sdk/<file>, joka palvelee tiedoston latauksena — tai käytäcurl -O https://fastog.com/sdk/<file>, jos pidät komentorivistä.
Vue, Next.js, Astro ja Express toimivat Node-pohjalla — ne jakavat samat testatut allekirjoitustiedostot (CommonJS Expressille, ESM muille); vain käyttö/README eroaa. Kunkin kehyksen sdk/<name>/README.md näyttää tarkan integraation.
Jokainen tiedosto on koko SDK. Kopioi se projektiisi, require/import se, ja se on valmis.
Käyttö
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 (tiedostossa +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) — tuo allekirjoittaja (signer) käyttöön, kutsu ogImageUrl(params, { key, secret })-funktiota palvelinkoodissasi ja renderöi URL-osoite head-osioon. Katso kunkin kehyksen sdk/<name>/README.md-dokumentaatio.
Lisää url-arvo kohtaan <meta property="og:image">. Hakurobotit hakevat sen GET-pyynnöllä — reunavälimuistitettu (edge-cached), yksi renderöinti jokaista yksilöllistä kuvaa kohden.
Versiointi
Tämä on v1, ja sitä ylläpidetään paikan päällä. Kun sopimus muuttuu, päivitämme tiedostot ja tämän sivun yhdessä (v2, v3, …) — päivität lataamalla uudelleen. Ei pakettirekisteriä synkronoitavaksi, ei semver-serenomoniaa, ei monipakettien eriytymistä.
Miten se toimii
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))
- Mikä tahansa muutos parametrissa mitätöi allekirjoituksen →
401, ei renderöintiä, ei kiintiön kulutusta. - Identtiset parametrit → identtinen URL → välimuistitettavissa reunalla ikuisesti.
- Taulukkoparametrit (
features) lähetetään muodossakey[]=/key[0]=, jotta palvelin purkaa ne oikein. - Peruuta kiertämällä avaimen salaisuus.
Varmistus
Kaikki SDK:t testataan samalla kultaisella vektorilla (golden vector), jonka FastOG-palvelin tuottaa:
canonical = features=30-day%20returns&features=Free%20shipping&key=sk_test123&template=blog&title=Hello%20World
signature = a79232b15b45002aee76174f542e0a661b37cb1259df01e263c952ca4052a54d
Jos kopiosi tuottaa kyseisen allekirjoituksen näille parametreille, palvelin hyväksyy URL-osoitteesi.
Turvallisuus
secreton vain palvelinpuoleinen — ei koskaan selaimessa, ei koskaan julkisessa CDN-skriptissä.keyon julkinen (se näkyy URL-osoitteissa) — se on odotettua.- Allekirjoita palvelimellasi; FastOG-URL on se, jonka upotat, ei salaisuus.