FastOG
Topik

FastOG SDK — Unduh & Gunakan

Satu file per bahasa, tanpa dependensi, tanpa manajer paket yang diperlukan. Unduh di bawah ini (atau curl dari CDN kami) dan salin ke dalam proyek Anda (khusus sisi server). Dipelihara sebagai v1 di sini — ketika kontrak berubah, kami memperbarui halaman ini dan file yang dapat diunduh secara bersamaan. Untuk kontrak penandatanganan lengkap + implementasi buatan tangan dalam bahasa apa pun, lihat Integrasi Agen & LLM.

Unduhan

Pilih bahasa dan klik unduh (atau klik kanan → Simpan Sebagai):

Bahasa Unduhan
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

Tautan ini mengarah ke /sdk/<file>, yang menyajikan file sebagai unduhan — atau gunakan curl -O https://fastog.com/sdk/<file> jika Anda lebih suka baris perintah.

Vue, Next.js, Astro, dan Express berjalan di Node — mereka berbagi file penandatangan (signer) yang sama dan telah diuji (CommonJS untuk Express, ESM untuk lainnya); hanya penggunaan/README yang berbeda. sdk/<name>/README.md setiap kerangka kerja menunjukkan integrasi yang tepat.

Setiap file adalah seluruh SDK. Salin ke proyek Anda, require/import, selesai.

Penggunaan

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 (di dalam +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) — impor fungsi penanda tangan (signer), panggil ogImageUrl(params, { key, secret }) dalam kode server Anda, lalu render URL di bagian head. Lihat sdk/<name>/README.md masing-masing framework.

Masukkan url ke dalam <meta property="og:image">. Perayap (crawler) akan mengambilnya melalui GET — cache di edge, satu render per gambar unik.

Versioning

Ini adalah v1 dan dipelihara di tempat yang sama. Ketika kontrak berubah, kami menaikkan versi file + halaman ini secara bersamaan (v2, v3, …) — Anda memperbarui dengan mengunduh ulang. Tidak ada registry paket untuk disinkronkan, tidak ada formalitas semver, tidak ada ketidaksesuaian antar paket.

Cara kerjanya

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))
  • Perubahan apa pun pada parameter akan membatalkan tanda tangan → 401, tanpa render, tanpa hitungan kuota.
  • Parameter yang identik → URL yang identik → dapat di-cache di edge selamanya.
  • Parameter array (features) dikeluarkan sebagai key[]= / key[0]= sehingga server dapat mendekodenya dengan benar.
  • Cabut dengan memutar ulang rahasia kunci.

Verifikasi

Semua SDK diuji terhadap vektor emas (golden vector) yang sama yang dihasilkan oleh server FastOG:

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

Jika salinan Anda menghasilkan tanda tangan tersebut untuk parameter-parameter itu, server akan menerima URL Anda.

Keamanan

  • secret hanya untuk sisi server — jangan pernah di browser, jangan pernah di skrip CDN publik.
  • key bersifat publik (muncul di URL) — itu hal yang wajar.
  • Tandatangani di server Anda; URL FastOG adalah yang Anda sematkan, bukan rahasianya.

Coba gratis — tanpa perlu mendaftar

Pratinjau dan uji gambar OG dinamis dalam hitungan detik.

Buka Penguji Gambar OG Gratis

A BeCaSimulations site