Pematuhan & Persetujuan API Langsung
Baca pernyataan privasi/pematuhan ahli pasukan anda yang diterbitkan dan sahkan persetujuan setiap ahli ke atas v2 REST API yang dikawal. Kedai, aplikasi, gudang data atau pejabat belakang anda boleh mengambil pernyataan semasa, menjalankan sejarah versinya dan mengesahkan dengan tepat versi yang dipersetujui oleh ahli — dengan kunci yang diaudit dan berskop.
Pengesahan & skop
Semua titik akhir berada pada hos Flash API dan disahkan dengan kekunci API bahagian pelayan (Pembawa). Pasukan sentiasa diperoleh daripada kekunci — tidak pernah dihantar dalam permintaan. Dua akses pintu skop baca sahaja:
privacy:read— pernyataan: versi semasa, sejarah dan versi tertentu.consent:read— rekod persetujuan ahli (versi, skop, status, masa).
# 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"Baca pernyataan
Versi yang diterbitkan dan diarkibkan sahaja — draf tidak pernah didedahkan dan kandungan dibersihkan (penanda semakan dalaman dilucutkan) sebelum ia meninggalkan 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)Sahkan persetujuan
Sahkan dengan tepat versi pernyataan dan skop yang dipersetujui oleh ahli. Rekod hanyalah bukti tambahan dan kekal selepas pemadaman ahli; API mengembalikan apa yang anda perlu sahkan — tanpa IP mentah atau ejen pengguna (peminimuman PII).
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": [] }.Jaminan
Diasingkan daripada penyewa
teamId berasal daripada kekunci API; id pasukan lain mencapai 404. Titik akhir adalah terhad pada setiap kunci.
Draf tidak pernah bocor
Hanya versi yang diterbitkan/diarkibkan yang dihidangkan, dibersihkan — draf kerja dalam proses dan penanda dalaman kekal di dalam.
Persetujuan terikat pada perkataan
Setiap rekod membawa versi number dan hash kandungan, jadi "v3" sentiasa bermaksud perkataan yang sama.
Minimal secara lalai
Rekod persetujuan tidak memasukkan IP mentah / ejen pengguna — anda mendapat bukti pengesahan, bukan data pengawasan.
Rujukan boleh dibaca mesin: titik akhir berada dalam spesifikasi OpenAPI v2 pada https://flash.socialhub.ai/api/v2/openapi.json (tag Privacy).
Melangkaui persetujuan: langganan topik, dikuatkuasakan semasa penghantaran
Persetujuan adalah pintu gerbang undang-undang; langganan topik adalah pilihan ahli yang lebih terperinci yang manapemasaran yang mereka mahukan. Dari kawasan privasi portal, ahli boleh mematikan topik individu — promosi, surat berita, kesetiaan, pengumuman produk — sambil mengekalkan yang lain. Ia merupakan model pilih keluar (tiada rekod = melanggan), dan ia dikuatkuasakan di bahagian pelayan: setiap kempen membawa topik, dan pintu penghantaran menyekat mesej apabila ahli telah mematikan topik tersebut — di samping had kekerapan dasar komunikasi dan waktu senyap. Mesej transaksi tidak akan terjejas. Ahli menguruskannya sendiri; portal membaca dan menulisnya di titik akhir sesi pengguna (/api/member/topic-subscriptions), jadi tiada pentadbir API kunci terlibat.