---
sidebar:
  order: 2
title: SDK TypeScript
description: >-
  Usa l’SDK del repository per letture tipizzate, scritture confermate e caricamenti di contenuti multimediali locali.
---

`@influence/sdk` è attualmente un pacchetto privato del repository e non è pubblicato su npm. Questi esempi si applicano a progetti che dispongono di quel pacchetto del repository. Per un client indipendente, usa l’[API HTTP](/it/developers/http-api).

Fornisci esplicitamente l’origine attendibile e carica la chiave dall’ambiente segreto del processo:

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

Usa `listTools()` per il rilevamento e `callTool(name, input)` per gli strumenti che il catalogo indica come privi di conferma obbligatoria, incluse le prosecuzioni di caricamenti autorizzati. Le azioni che richiedono conferma usano `prepareTool(name, input)` seguito da `confirmTool(name, input, confirmationCapability, { idempotencyKey })`. Dopo una risposta dall’esito incerto, conserva lo stesso input, la stessa capability e la stessa chiave. L’SDK convalida le richieste e le risposte e genera `InfluenceSdkError` per gli errori HTTP e quelli degli strumenti.

`uploadMedia(file, { clientKey, name, contentType, sizeBytes })` accetta un `Blob` e gestisce il trasferimento multipart confermato. Riprova con lo stesso file e lo stesso `clientKey`. Leggi `mediaUploadGet` finché la risorsa finale non è pronta; un caricamento in elaborazione non è pronto per la pubblicazione. Rispetta le [regole di revisione e nuovo tentativo per la pubblicazione](/it/developers/http-api), che restano separate.
