---
sidebar:
  order: 2
title: SDK ל־TypeScript
description: >-
  השתמשו ב־SDK של המאגר לקריאת נתונים עם טיפוסים מוגדרים, לפעולות כתיבה מאושרות ולהעלאת מדיה מקומית.
---

`@influence/sdk` היא כיום חבילה פנימית של המאגר, שאינה מפורסמת להתקנה מ־npm. הדוגמאות האלה מיועדות לפרויקטים שחבילת סביבת העבודה הזאת זמינה בהם. ללקוח עצמאי, השתמשו ב[ממשק API ב־HTTP](/he/developers/http-api).

ציינו במפורש את כתובת המקור המהימנה וטענו את המפתח ממשתנה סביבה סודי של התהליך:

```ts
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 בודק את תקינות הבקשות והתגובות וזורק `InfluenceSdkError` לכשלי HTTP ולכשלי כלים.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` מקבל `Blob` ומטפל בהעברת multipart עם אישור ברמת התעבורה. נסו שוב עם אותו קובץ ואותו `clientKey`. קראו את `mediaUploadGet` עד שפריט המדיה הסופי יהיה מוכן; העלאה שנמצאת בעיבוד אינה מוכנה לפרסום. פעלו לפי [כללי הבדיקה והניסיון החוזר הנפרדים לפרסום](/he/developers/http-api).
