---
sidebar:
  order: 2
title: حزمة SDK للغة TypeScript
description: >-
  استخدم حزمة SDK من المستودع للقراءات محددة الأنواع، وعمليات الكتابة المؤكدة، ورفع الوسائط المحلية.
---

`@influence/sdk` هي حاليا حزمة خاصة داخل المستودع، وليست حزمة منشورة للتثبيت عبر npm. تنطبق هذه الأمثلة على المشاريع التي تتوفر فيها هذه الحزمة ضمن مساحة عمل المشروع. لإنشاء عميل مستقل، استخدم [واجهة API عبر HTTP](/ar/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`، وتتولى نقل البيانات متعدد الأجزاء مع التأكيد المطلوب. أعد المحاولة بالملف نفسه وقيمة `clientKey` نفسها. تابع قراءة `mediaUploadGet` حتى يصبح عنصر الوسائط النهائي جاهزا؛ فالرفع الذي لا يزال قيد المعالجة غير جاهز للنشر. التزم [بقواعد مراجعة النشر وإعادة المحاولة المنفصلة](/ar/developers/http-api).
