주제

FastOG SDK — 다운로드 및 사용

언어별 단일 파일, 의존성 제로, 패키지 매니저 불필요. 아래에서 다운로드하거나(또는 CDN에서 curl) 프로젝트에 복사하세요(서버 측 전용). 현재 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에서 실행되며 동일한 테스트된 서명자 파일을 공유합니다(Express는 CommonJS, 나머지는 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 })을 호출하고, head에 URL을 렌더링합니다. 각 프레임워크의 sdk/<name>/README.md을 참조하세요.

url을 <meta property="og:image">에 넣으세요. 크롤러가 GET 요청을 보내며, 엣지 캐시(edge-cache)로 처리되어 고유 이미지당 한 번만 렌더링됩니다.

버전 관리

이 문서는 v1이며 현재 위치에서 유지 관리됩니다. 계약(contract)이 변경되면 파일과 이 페이지를 함께 업데이트합니다(v2, v3, …). 업데이트는 재다운로드를 통해 이루어집니다. 동기화할 패키지 레지스트리도, 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))
  • 파라미터가 변경되면 서명이 무효화됩니다 → 401, 렌더링 없음, 할당량(quota) 차감 없음.
  • 동일한 파라미터 → 동일한 URL → 엣지(edge)에서 영구적으로 캐시 가능.
  • 배열 파라미터(features)는 key[]= / key[0]=로 전송되어 서버가 올바르게 디코딩합니다.
  • 키의 시크릿(secret)을 회전시켜 서명을 폐기할 수 있습니다.

검증

모든 SDK는 FastOG 서버가 생성한 동일한 골든 벡터(golden vector)를 기준으로 테스트됩니다:

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

복사본이 해당 매개변수에 대해 그 서명을 생성한다면, 서버는 해당 URL을 수락합니다.

보안

  • secret는 서버 전용입니다. 브라우저나 공개 CDN 스크립트에는 절대 포함하지 마십시오.
  • key는 공개 정보입니다(URL에 표시됨). 이는 정상적인 동작입니다.
  • 서버에서 서명하십시오. 삽입하는 것은 FastOG URL이며, 비밀 키가 아닙니다.

무료로 체험해 보세요 — 가입 불필요

몇 초 만에 동적 OG 이미지를 미리 보고 테스트하세요.

무료 OG 이미지 테스터 열기

A BeCaSimulations site