Téma

FastOG SDK — Stažení a použití

Jeden soubor pro každý jazyk, nulové závislosti, bez nutnosti správce balíčků. Stáhněte si jej níže (nebo si jej curl z našeho CDN) a zkopírujte do svého projektu (pouze na straně serveru). Udržováno jako v1 přímo zde — když se smlouva změní, aktualizujeme tuto stránku a soubory ke stažení společně. Pro úplnou podepisovací smlouvu (signing contract) + ručně implementované verze v jakémkoli jazyce viz Integrace agentů a LLM.

Stažení

Vyberte si jazyk a klikněte na stáhnout (nebo klikněte pravým tlačítkem → Uložit jako):

Jazyk Stažení
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

Tyto odkazy míří na /sdk/<file>, který soubor obslouží jako stažení — nebo použijte curl -O https://fastog.com/sdk/<file>, pokud preferujete příkazový řádek.

Vue, Next.js, Astro a Express běží na Node — sdílejí stejné otestované soubory podepisování (CommonJS pro Express, ESM pro ostatní); liší se pouze použití/README. sdk/<name>/README.md každého frameworku ukazuje přesnou integraci.

Každý soubor je celé SDK. Zkopírujte ho do svého projektu, require/import ho a hotovo.

Použití

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 (v +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) — importujte signer (podepisovací funkci), zavolejte ogImageUrl(params, { key, secret }) ve svém serverovém kódu a vykreslete URL do hlavičky. Viz sdk/<name>/README.md pro každý framework.

Vložte url do <meta property="og:image">. Crawleři ho načtou metodou GET — edge-cached, jeden render pro každý unikátní obrázek.

Verzování

Toto je v1 a je udržována na místě. Když se smlouva změní, aktualizujeme soubory společně s touto stránkou (v2, v3, …) — aktualizujete opětovným stažením. Žádný balíčkový registr k synchronizaci, žádný semver ceremoniál, žádný rozptyl mezi balíčky.

Jak to funguje

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))
  • Jakákoli změna parametru zneplatní podpis → 401, žádné vykreslení, žádné započítání kvóty.
  • Identické parametry → identická URL → trvale kešovatelné na okraji sítě.
  • Pole parametrů (features) se odesílají jako key[]= / key[0]=, aby je server správně dekódoval.
  • Odvolání provedete rotací tajemství klíče.

Ověření

Všechny SDK jsou testovány proti stejnému zlatému vektoru (golden vector) vytvořenému serverem FastOG:

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

Pokud vaše kopie vytvoří tento podpis pro tyto parametry, server vaše URL přijme.

Zabezpečení

  • secret je pouze na straně serveru – nikdy v prohlížeči, nikdy ve veřejném CDN skriptu.
  • key je veřejný (objevuje se v URL) – to je očekávané.
  • Podepisujte na svém serveru; URL FastOG je to, co vkládáte, ne tajný klíč.

Vyzkoušejte zdarma – bez registrace

Náhled a testování dynamických OG obrázků během pár sekund.

Otevřít bezplatný tester OG obrázků

A BeCaSimulations site