身份驗證與範圍
所有端點均位於 Flash API 主機上,並使用伺服器端 API 金鑰(Bearer)進行驗證。團隊始終源自於金鑰——絕不會在請求中發送金鑰。兩個唯讀範圍控制存取權限:
privacy:read— 聲明:目前版本、歷史記錄和特定版本。consent:read— 會員的授權記錄(版本、範圍、狀態、時間)。
# Every call uses a server-side API key (Bearer). teamId is derived from the key,
# never sent in the request. Two read scopes:
# privacy:read → the statement (current / history / a version)
# consent:read → a member's consent records
curl https://flash.socialhub.ai/api/v2/privacy/current \
-H "Authorization: Bearer fl_live_your_key_here"閱讀聲明
僅發布和存檔版本-草稿絕不會公開,內容在離開 API 之前會進行清理(去除內部審核標記)。
GET https://flash.socialhub.ai/api/v2/privacy/current # scope: privacy:read
# 200 — the current published statement (sanitized), or { "data": null } if none published.
{
"data": {
"id": "pol_…",
"version": "v3",
"versionSeq": 3,
"status": "published",
"locale": "en",
"changeType": "material",
"changeSummary": "Updated data-retention section",
"effectiveAt": "2026-02-01T00:00:00.000Z",
"contentHash": "…sha256…",
"content": { "sections": [ { "key": "intro", "title": "…", "body": "…" } ] }
}
}GET https://flash.socialhub.ai/api/v2/privacy/policies # scope: privacy:read
# 200 — version history, newest first (metadata only; published & archived — never drafts).
{
"data": [
{ "id": "pol_3", "version": "v3", "versionSeq": 3, "status": "published",
"changeType": "material", "effectiveAt": "2026-02-01T00:00:00.000Z", "contentHash": "…" },
{ "id": "pol_2", "version": "v2", "versionSeq": 2, "status": "archived",
"changeType": "minor", "effectiveAt": "2026-01-01T00:00:00.000Z", "contentHash": "…" }
],
"total": 2
}
GET https://flash.socialhub.ai/api/v2/privacy/policies/{id} # one version, full sanitized content (404 for a draft id)驗證同意
確認成員同意的具體聲明版本和範圍。記錄僅作為附加證據,即使成員刪除記錄,記錄仍然有效;API 傳回您需要驗證的資訊-不包含原始 IP 位址或使用者代理程式(個人識別資訊最小化)。
GET https://flash.socialhub.ai/api/v2/members/{id}/consents # scope: consent:read
# 200 — the member's consent records, newest first. The evidence to VERIFY consent:
# which statement version + scopes, the method, status and time. No raw IP / user-agent.
{
"data": [
{
"id": "con_…",
"scopes": ["privacy_policy", "marketing_email"],
"method": "register",
"status": "active", // active | legacy_unverified | withdrawn
"policyVersion": "v3",
"policyVersionSeq": 3,
"policyContentHash": "…sha256…",
"consentedAt": "2026-02-02T10:30:00.000Z"
}
]
}
# A member of another team (or unknown) → 404. No consents yet → { "data": [] }.保障
租戶隔離
teamId 來自 API 鍵;另一個團隊的 ID 解析為 404。每個密鑰的端點都有速率限制。
草稿絕不洩露
僅提供已發布/已存檔的版本,並經過清理——正在開發的草稿和內部標記將保留在內部。
同意書與措詞綁定
每個記錄都包含版本號 number 和內容雜湊值,因此「v3」始終代表相同的內容。
預設最小化
同意記錄不包含原始 IP 位址/使用者代理資訊-您獲得的是驗證證據,而非監控資料。
機器可讀參考:端點位於 v2 OpenAPI 規範的 https://flash.socialhub.ai/api/v2/openapi.json 處(標籤 Privacy)。
超越同意:主題訂閱,在發送時強制執行。
同意是法律門檻;主題訂閱則是會員對哪些行銷內容進行更精細的選擇。會員可以在入口網站的隱私設定中關閉特定主題——例如促銷、新聞簡報、會員積分、產品公告——同時保留其他主題。這是一種選擇退出模式(無記錄即表示已訂閱),並在伺服器端強制執行:每個行銷活動都包含一個主題,當會員關閉該主題時,發送網關會阻止發送訊息——同時還會限制通訊頻率和靜默時間。交易訊息不受影響。會員自行管理;入口網站透過消費者會話端點 (/api/member/topic-subscriptions) 讀取和寫入訊息,因此無需管理員 API 金鑰。