หัวข้อ

FastOG SDK — ดาวน์โหลดและใช้งาน

หนึ่งไฟล์ต่อภาษา ไม่มี dependencies, ไม่ต้องใช้ package manager ดาวน์โหลดด้านล่าง (หรือ curl จาก CDN ของเรา) แล้วคัดลอกไปยังโปรเจกต์ของคุณ (เฉพาะฝั่งเซิร์ฟเวอร์) ดูแลรักษาเป็น v1 ที่นี่ — เมื่อสัญญาเปลี่ยนแปลง เราจะอัปเดตหน้านี้และไฟล์ที่ดาวน์โหลดได้พร้อมกัน สำหรับสัญญาการลงนามฉบับเต็มและการใช้งานที่เขียนด้วยมือในภาษาต่างๆ ดูที่ การรวม Agent และ LLM

ดาวน์โหลด

เลือกภาษาที่ต้องการแล้วคลิก ดาวน์โหลด (หรือคลิกขวา → บันทึกเป็น):

ภาษา ดาวน์โหลด
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

ลิงก์เหล่านี้เชื่อมไปยัง /sdk/<file> ซึ่งให้บริการไฟล์ในรูปแบบดาวน์โหลด — หรือใช้ curl -O https://fastog.com/sdk/<file> หากคุณต้องการใช้คำสั่งในบรรทัดคำสั่ง

Vue, Next.js, Astro และ Express ทำงานบน Node — ใช้ไฟล์ signer ที่ทดสอบแล้วร่วมกัน (CommonJS สำหรับ Express, ESM สำหรับส่วนที่เหลือ); เฉพาะส่วนการใช้งาน/README เท่านั้นที่แตกต่างกัน ไฟล์ sdk/<name>/README.md ของแต่ละเฟรมเวิร์กแสดงวิธีการผสานรวมที่แน่นอน

แต่ละไฟล์คือ SDK ทั้งหมด คัดลอกไปยังโปรเจกต์ของคุณ require/import แล้วเสร็จสิ้น

การใช้งาน

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 (ใน +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) — นำเข้า signer (ฟังก์ชันลงนาม) เรียกใช้ ogImageUrl(params, { key, secret }) ในโค้ดฝั่งเซิร์ฟเวอร์ของคุณ แล้วแสดงผล URL ในส่วน head ดู sdk/<name>/README.md ของแต่ละเฟรมเวิร์ก

วาง url ลงใน <meta property="og:image"> ครอว์เลอร์จะทำการ GET — แคชที่ขอบเครือข่าย (edge-cached) เรนเดอร์หนึ่งครั้งต่อรูปภาพที่ไม่ซ้ำกัน

เวอร์ชัน

นี่คือ v1 และจะดูแลรักษาในตำแหน่งนี้ เมื่อสัญญา (contract) มีการเปลี่ยนแปลง เราจะอัปเดตไฟล์และหน้านี้ไปพร้อมกัน (v2, v3, …) — คุณอัปเดตโดยการดาวน์โหลดใหม่ ไม่มี registry ของแพ็กเกจให้ซิงค์ ไม่มีพิธีรีตองเรื่อง semver และไม่มีความคลาดเคลื่อนระหว่างแพ็กเกจหลายตัว

วิธีการทำงาน

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))
  • การเปลี่ยนแปลงค่า param ใดๆ จะทำให้ลายเซ็นไม่ถูกต้อง → 401 ไม่มีการเรนเดอร์ ไม่มีการนับโควตา
  • param ที่เหมือนกัน → URL ที่เหมือนกัน → สามารถแคชที่ขอบเครือข่ายได้ถาวร
  • param แบบอาร์เรย์ (features) จะถูกส่งออกเป็น key[]= / key[0]= เพื่อให้เซิร์ฟเวอร์ถอดรหัสได้อย่างถูกต้อง
  • เพิกถอนได้โดยการหมุน secret ของคีย์

การตรวจสอบ

SDK ทั้งหมดได้รับการทดสอบกับเวกเตอร์ทองคำ (golden vector) ชุดเดียวกันที่สร้างโดยเซิร์ฟเวอร์ FastOG:

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

หากโค้ดของคุณสร้างลายเซ็น (signature) นั้นสำหรับพารามิเตอร์เหล่านั้น เซิร์ฟเวอร์จะยอมรับ URL ของคุณ

ความปลอดภัย

  • secret ใช้ได้เฉพาะฝั่งเซิร์ฟเวอร์ (server-side) เท่านั้น — ห้ามนำไปไว้ในเบราว์เซอร์หรือสคริปต์ CDN สาธารณะโดยเด็ดขาด
  • key เป็นข้อมูลสาธารณะ (ปรากฏใน URL) — ซึ่งเป็นเรื่องปกติที่คาดหวังได้
  • ลงนาม (sign) บนเซิร์ฟเวอร์ของคุณเอง; สิ่งที่คุณฝังคือ URL ของ FastOG ไม่ใช่ความลับ (secret)

ลองใช้ฟรี — ไม่ต้องสมัครสมาชิก

ดูตัวอย่างและทดสอบภาพ OG แบบไดนามิกได้ในไม่กี่วินาที

เปิดตัวทดสอบภาพ OG ฟรี

A BeCaSimulations site