當您在自建前端經營線上課程、付費專欄、音訊節目或數位下載包時,最難自己維護的通常是「買家登入」「確認誰有權限看哪個單元(Entitlement)」「私有影音與 PDF 防盜連簽名」以及「跨裝置觀看進度同步」。
Kanorio 將這些底層能力封裝為兩層,您可以依客製化程度自由選擇:
<kanorio-*> 元件(@kanorio/elements,最快):一行標籤或 React 元件,直接把 Kanorio 內建的無密碼登入框、公開課綱與受保護播放器搬進您的外部網站。https://{您的網站}/api/v1/customer/*):用您自己的 UI 呼叫無密碼認證、讀取已開通的交付物樹狀結構、換取 600 秒短效簽名網址並回報進度。完整規格參考(SSOT):
- 所有顧客端點、參數與回應結構:Customer API 參考頁
- 元件屬性、自訂事件與 CSS 變數:Kanorio Elements 參考頁
@kanorio/elements 元件(推薦)@kanorio/elements 提供標準 Web Components(任何框架或純 HTML 皆可用)與 React 元件,內建 58 種語系與深淺色主題變數:
| 元件名稱 | 是否需買家登入 | 用途 |
|---|---|---|
<kanorio-curriculum> | 免登入(公開) | 放在商品銷售頁,自動讀取 GET /api/v1/products/{slug} 的交付物大綱(章節、單元型別、時長),並讓訪客直接點擊試看標記為「免費預覽」的單元 |
<kanorio-login> | 登入入口 | 提供 Email 6 位數驗證碼與魔術連結無密碼登入,驗證成功後自動簽發買家專屬的 Bearer Session 並觸發 kanorio:login 事件 |
<kanorio-unit> | 需登入(試看單元除外) | 完整的受保護學習與交付介面:含章節側欄、影片/音訊播放器、PDF 閱讀器、檔案下載卡、未解鎖與定時解鎖提示,並自動向伺服器回報觀看秒數與完成狀態 |
<kanorio-media>/<kanorio-lightbox> | 免登入(公開) | 公開影音播放器與支援縮放、鍵盤切換及防存圖設定的圖片燈箱 |
import { KanorioProvider, KanorioLogin, KanorioUnit } from "@kanorio/elements"; import "@kanorio/elements/elements.css"; export function CoursePlayerPage() { return ( <KanorioProvider siteUrl="https://s-k4m9x2p7q8w3.kanorio.com" locale="zh-Hant" theme="auto"> <KanorioLogin siteName="拾光線上學院" /> <KanorioUnit deliverable="react-masterclass" onProgress={(e) => console.log("進度更新:", e)} /> </KanorioProvider> ); }
如果您希望百分之百自己設計課程大綱與學習畫面,可以直接從瀏覽器(需先在「網站設定 › 開發者」將外部前端網域加入「允許的來源」)或您的伺服器呼叫 Customer API:
POST /api/v1/customer/auth/challenge 寄出 6 位數驗證碼與登入連結。POST /api/v1/customer/auth/verify,取得買家本人的 sessionToken(knr_cat_*,雙重綁定該網站與該名聯絡人)。Authorization: Bearer knr_cat_...,呼叫 GET /api/v1/customer/deliverables 列出該買家擁有有效的所有交付物。GET /api/v1/customer/deliverables/{key} 取得完整章節樹、每個單元的解鎖狀態與目前觀看進度。POST /api/v1/customer/units/{id}/open(伺服器會即時檢查存取權是否有效、是否已達定時解鎖日期 releaseAt/releaseAfterDays),換取 600 秒有效的私有媒體簽名網址。POST /api/v1/customer/progress 回報 positionSeconds,由伺服器依交付物的結業規則判定是否完成並觸發 deliverables.progress.completed Webhook。在設計自建前端時,請留意 Kanorio 將三種權利嚴格分開:
<kanorio-unit> 檢查。knr_pat_)的權限,「能觀看課程」絕不等於「能修改課綱」。在外部前端的商品介紹頁放上結帳導購連結(指向您網站系統網址的結帳頁並帶上 return_to 返回網址)。買家完成付款後,Kanorio 會自動依商品綁定的交付物開通 Entitlement、寄出收據與領取信,並導回您的外部前端直接開始觀看。