TypeScript SDK
使用儲存庫內的 SDK,進行型別化讀取、經確認的寫入與本機媒體上傳。
@influence/sdk 目前是私有儲存庫套件,尚未發布至 npm。這些範例適用於可使用該工作區套件的專案。若要建立獨立用戶端,請使用 HTTP API。
明確提供可信任的來源網址,並從程序存放機密值的環境變數載入金鑰:
import { InfluenceClient } from "@influence/sdk/client";
const accessToken = process.env.PUBLISH_API_TOKEN;
if (!accessToken) throw new Error("PUBLISH_API_TOKEN");
const client = new InfluenceClient({
baseUrl: "https://influence.so",
accessToken,
});
const catalog = await client.listTools();
const accounts = await client.callTool("accountList", {});
console.log(catalog.tools, accounts.output);
使用 listTools() 探索工具;若目錄標示工具不需確認,則以 callTool(name, input) 呼叫,包括接續已授權的上傳。需要確認的操作,先呼叫 prepareTool(name, input),再呼叫 confirmTool(name, input, confirmationCapability, { idempotencyKey })。回應不明確時,沿用相同的輸入、確認憑證與金鑰。SDK 會驗證請求及回應,遇到 HTTP 或工具失敗時拋出 InfluenceSdkError。
uploadMedia(file, { clientKey, name, contentType, sizeBytes }) 接受 Blob,並處理經確認的分段傳輸。重試時沿用相同檔案與 clientKey。持續讀取 mediaUploadGet,直到最終素材就緒;仍在處理中的上傳檔案不能用於發布。請遵守另外適用的發布審核與重試規則。