---
sidebar:
  order: 2
title: "SDK TypeScript"
description: "Gunakan SDK repositori untuk pembacaan bertipe, perubahan terkonfirmasi, dan unggahan lokal."
---

`@influence/app-sdk` saat ini adalah paket privat repositori, bukan paket yang dipublikasikan untuk instalasi npm. Contoh ini memerlukan paket tersebut di workspace pengembangan. Untuk klien mandiri, gunakan [HTTP API](/id/developers/http-api).

Tentukan origin tepercaya secara eksplisit dan ambil kunci dari lingkungan rahasia proses:

```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);
```

Gunakan `listTools()` untuk menemukan alat dan `callTool(name, input)` untuk membaca. Perubahan memakai `prepareTool(name, input)`, lalu `confirmTool(name, input, confirmationCapability, { idempotencyKey })`. Pertahankan nilai yang sama setelah respons yang belum pasti. SDK memvalidasi permintaan dan respons serta melempar `InfluenceSdkError` saat terjadi kegagalan HTTP atau alat.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` menerima `Blob` dan menangani transfer multipart terkonfirmasi. Coba lagi dengan berkas dan `clientKey` yang sama. Baca `mediaUploadGet` sampai aset siap; unggahan yang masih diproses belum siap diterbitkan. Ikuti [aturan peninjauan dan percobaan ulang](/id/developers/http-api).
