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 持续查看,直到最终素材就绪;仍在处理的上传还不能发布。请遵循单独规定的发布审核与重试规则。