> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Resumen del SDK

> Integra en tu aplicación la conexión de cuentas sociales y la programación de publicaciones de Social media studio

`@social-media-scheduler/sdk` es el SDK de TypeScript del lado del servidor para plataformas
que quieren ofrecer a sus propios clientes la conexión de cuentas sociales y la programación de
publicaciones. Social media studio aloja el flujo OAuth y la infraestructura de publicación, mientras tu
aplicación conserva el control de la experiencia de sus clientes.

> [!WARNING]
>
> Las claves de socio pueden acceder a todos los usuarios finales de su proyecto. Usa el SDK solo en
> código de servidor de confianza. Nunca incluyas una clave `pk_test_` o `pk_live_` en código de navegador,
> móvil, de escritorio ni en ningún otro código que se distribuya a los clientes.

> [!NOTE]
>
> La plataforma embebida está actualmente en disponibilidad limitada, y la conexión de cuentas
> alojada admite por ahora Threads. Contacta con Social media studio para que te aprovisionen un proyecto de socio
> y una clave de API.

## SDK frente a CLI

| Paquete | Usuario previsto | Credenciales | Uso habitual |
| - | - | - | - |
| `@social-media-scheduler/sdk` | Desarrolladores de aplicaciones que atienden a muchos usuarios finales | Clave de socio (`pk_test_` o `pk_live_`) | Integrar conexiones y programación en un producto |
| `@social-media-scheduler/cli` | Un cliente directo de Social media studio | Clave de API personal (`sk_live_`) | Gestionar tu propia organización desde una terminal o CI |

Los paquetes son independientes. Instalar el SDK no instala el comando `so-me`,
y la CLI no expone el SDK de socios.

## Requisitos

* Node.js 20 o superior
* Un proyecto de socio de Social media studio
* Una clave de API de socio de prueba o de producción
* Todos los orígenes de tu aplicación que puedan recibir un retorno de OAuth, registrados en el
  proyecto de socio

## Instalación

```bash npm theme={null}
npm install @social-media-scheduler/sdk
```

```bash pnpm theme={null}
pnpm add @social-media-scheduler/sdk
```

```bash yarn theme={null}
yarn add @social-media-scheduler/sdk
```

El SDK incluye compilaciones ESM y CommonJS, declaraciones de TypeScript y no tiene
dependencias en tiempo de ejecución.

## Inicializar el cliente

```ts theme={null}
import { SoMePlatformClient } from "@social-media-scheduler/sdk";

export const soMe = new SoMePlatformClient({
  apiKey: process.env.SOME_PARTNER_API_KEY!,
});
```

La URL de la API de producción es `https://api.so-me.studio` por defecto. Puedes indicar
`baseUrl` para un entorno autoalojado o local y personalizar el tiempo de espera de
30 segundos de las solicitudes:

```ts theme={null}
const soMe = new SoMePlatformClient({
  apiKey: process.env.SOME_PARTNER_API_KEY!,
  baseUrl: "http://localhost:8000",
  timeoutMs: 15_000,
});
```

## Flujo de principio a fin

1. Crea o actualiza (`upsert`) un usuario final con el ID estable del cliente de tu base de datos.
2. Crea una sesión de conexión de corta duración y envía su `connectUrl` al navegador del
   cliente.
3. Cuando termine OAuth, recupera la sesión o lista las conexiones sociales
   del cliente.
4. Crea una publicación inmediata o programada con un ID de conexión devuelto.
5. Recibe los resultados de publicación mediante webhooks firmados.

```ts theme={null}
const customer = await soMe.endUsers.upsert({
  externalId: "customer_123",
  displayName: "Acme",
});

const session = await soMe.connectSessions.create({
  endUserId: customer.id,
  platform: "THREADS",
  returnUrl: "https://app.example.com/settings/social",
});

// Redirect the customer's browser to session.connectUrl.
```

> **[Conectar cuentas](/es/sdk/connect-accounts.md)**
>
> Crea usuarios finales y ejecuta el flujo OAuth alojado.

> **[Publicar posts](/es/sdk/posts-and-media.md)**
>
> Publica al instante, programa publicaciones y sube archivos multimedia.

> **[Recibir webhooks](/es/sdk/webhooks.md)**
>
> Verifica las cargas firmadas y gestiona los reintentos de forma segura.

> **[Proteger la integración](/es/sdk/security-and-errors.md)**
>
> Protege las claves de socio y gestiona los fallos de la API.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.