---
sidebar:
  order: 2
title: "TypeScript SDK"
description: "ใช้ SDK ของรีโพซิทอรีเพื่ออ่านข้อมูลแบบมีชนิด ยืนยันการเปลี่ยนแปลง และอัปโหลดไฟล์ในเครื่อง"
---

`@influence/app-sdk` เป็นแพ็กเกจภายในรีโพซิทอรี ยังไม่ได้เผยแพร่ให้ติดตั้งผ่าน npm ตัวอย่างเหล่านี้ต้องมีแพ็กเกจในเวิร์กสเปซพัฒนา หากสร้างไคลเอนต์แยก ให้ใช้ [HTTP API](/th/developers/http-api)

ระบุ origin ที่เชื่อถือได้อย่างชัดเจน และโหลดคีย์จากสภาพแวดล้อมข้อมูลลับของโปรเซส:

```ts
import { InfluenceClient } from "@influence/app-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` จนกว่าสื่อจะพร้อมใช้ สื่อที่กำลังประมวลผลยังไม่พร้อมเผยแพร่ ปฏิบัติตาม[กฎการตรวจทานและการลองใหม่](/th/developers/http-api)
