1. 準備產品與授權
適用於需要綁定裝置的桌面工具、命令列程式或服務。先以不計次的 export 功能驗證授權流程,再加入功能次數規則。
- 安裝 Go 1.26 或更新版本,在控制台開啟「快速接入」並建立產品。
- 在產品授權策略中啟用名為 export 的功能,建立或選擇測試授權。
- 下載已設定的 Go 整合套件。product.json 是產品公開設定;sdk-demo.json 含測試金鑰,不可放入客戶安裝套件。
2. 安裝到自己的專案
開啟 SDK 文件,選擇 Go 與作業系統,在專案目錄執行官網的版本安裝指令,使用安裝器產生的本機模組相依設定。匯入路徑為 github.com/spf86/licentivo-sdk;安裝器提供此獨立模組,因此範例不依賴 GitHub 發布。
整合期間固定套件版本。執行 go list -m github.com/spf86/licentivo-sdk 檢查模組,將自己的 product.json 放在程式工作目錄。
新專案可執行以下指令;已有 go.mod 的專案略過第一行。使用自己從控制台下載的 product.json。儲存下一節的 main.go 後,設定 LICENTIVO_LICENSE_KEY 再執行 go run .。
go mod init example.com/licensed-app
Invoke-WebRequest 'https://www.licentivo.com/assets/sdk/releases/v0.10.0/install.ps1' -OutFile install-licentivo.ps1
./install-licentivo.ps1 -Language go -Version 0.10.0go mod init example.com/licensed-app
curl --fail --location --proto '=https' --proto-redir '=https' --tlsv1.2 \
-o install-licentivo.sh \
'https://www.licentivo.com/assets/sdk/releases/v0.10.0/install.sh'
bash install-licentivo.sh go --version 0.10.03. 保護一次實際操作
將以下完整程式存為 main.go。以 LICENTIVO_LICENSE_KEY 傳入測試金鑰,正式應用程式可改為啟用輸入欄位。安裝後執行 go run .;成功會產生 licensed-report.txt。
package main
import (
"context"
"fmt"
"os"
licentivo "github.com/spf86/licentivo-sdk"
)
func run() error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
client, err := licentivo.OpenWithLicense(ctx, "product.json",
os.Getenv("LICENTIVO_LICENSE_KEY"),
func(err error) { fmt.Fprintln(os.Stderr, "License refresh:", err) })
if err != nil {
return err
}
defer client.Close()
err = client.RunFeature("export", func() error {
return os.WriteFile("licensed-report.txt", []byte("Licensed export\n"), 0600)
})
if err != nil {
return err
}
fmt.Println("Created licensed-report.txt")
return nil
}
func main() {
if err := run(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}4. 在應用程式生命週期中保留一個用戶端
正式應用程式在啟動時建立用戶端,將 RunFeature 放入匯出按鈕或命令處理函式,結束時才呼叫 Close。一般裝置綁定授權會保留註冊,SDK 則停止背景工作。
首次啟用成功後,SDK 儲存綁定本機的憑證。往後以相同使用者和快取位置啟動,可傳入空金鑰恢復。無須自行管理 activation_id 或傳送 HTTP 心跳。
仍有效的裝置綁定離線租約可立即恢復,再由 SDK 於背景更新。浮動或必須連線的策略需要伺服器成功回應。背景錯誤紀錄不可用來略過功能檢查。
5. 驗證允許與拒絕的操作
- 帶測試金鑰執行,確認產生匯出檔案。
- 移除 LICENTIVO_LICENSE_KEY,以相同使用者再次啟動,驗證儲存憑證恢復。
- 將 export 改成授權沒有的功能,確認回傳錯誤且沒有執行匯出。
- 僅在策略允許且簽章租約仍有效時,檢查離線重新啟動。
常見整合問題
找不到設定時,檢查 product.json 是否在目前工作目錄。從桌面捷徑啟動,可傳入設定檔的絕對路徑。
功能被拒絕時,檢查功能名稱與授權策略。RunFeature 只檢查權益,不檢查剩餘次數;計次功能使用 RunMeteredFeature。
裝置超限、授權到期或伺服器明確拒絕,需要客戶或廠商處理授權。顯示錯誤及可用的請求編號,不可把廠厂商管理 API Key 放入應用程式。