Aihe

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

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)

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) — 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 muodossa key[]= / 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

  • secret on vain palvelinpuoleinen — ei koskaan selaimessa, ei koskaan julkisessa CDN-skriptissä.
  • key on julkinen (se näkyy URL-osoitteissa) — se on odotettua.
  • Allekirjoita palvelimellasi; FastOG-URL on se, jonka upotat, ei salaisuus.

Kokeile ilmaiseksi — ei vaadi rekisteröitymistä

Esikatsele ja testaa dynaamisia OG-kuvia sekunneissa.

Avaa ilmainen OG-kuvien testaaja

A BeCaSimulations site