> ## 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.

# Présentation du SDK

> Intégrez la connexion de comptes sociaux et la programmation de publications de Social media studio dans votre application

`@social-media-scheduler/sdk` est le SDK TypeScript côté serveur destiné aux plateformes
qui souhaitent proposer à leurs propres clients la connexion de comptes sociaux et la programmation de publications.
Social media studio héberge le flux OAuth et l'infrastructure de publication, tandis que votre
application garde la maîtrise de l'expérience de ses clients.

> [!WARNING]
>
> Les clés partenaire peuvent accéder à tous les utilisateurs finaux de leur projet. N'utilisez le SDK que dans du
> code serveur de confiance. N'incluez jamais une clé `pk_test_` ou `pk_live_` dans du code navigateur,
> mobile, desktop ou distribué à vos clients.

> [!NOTE]
>
> La plateforme intégrée est actuellement en disponibilité limitée, et la connexion de comptes hébergée
> prend actuellement en charge Threads. Contactez Social media studio pour obtenir un projet partenaire
> et une clé d'API.

## SDK ou CLI

| Package | Utilisateur visé | Identifiants | Usage typique |
| - | - | - | - |
| `@social-media-scheduler/sdk` | Développeurs d'applications servant de nombreux utilisateurs finaux | Clé partenaire (`pk_test_` ou `pk_live_`) | Intégrer connexions et programmation dans un produit |
| `@social-media-scheduler/cli` | Un client Social media studio direct | Clé d'API personnelle (`sk_live_`) | Gérer sa propre organisation depuis un terminal ou la CI |

Les packages sont indépendants. Installer le SDK n'installe pas la commande `so-me`,
et la CLI n'expose pas le SDK partenaire.

## Prérequis

* Node.js 20 ou version ultérieure
* Un projet partenaire Social media studio
* Une clé d'API partenaire de test ou de production
* Chaque origine de votre application susceptible de recevoir un retour OAuth, enregistrée sur le
  projet partenaire

## Installation

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

Le SDK fournit des builds ESM et CommonJS, inclut les déclarations TypeScript et n'a
aucune dépendance d'exécution.

## Initialiser le client

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

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

L'URL de l'API de production est `https://api.so-me.studio` par défaut. Vous pouvez fournir
`baseUrl` pour un environnement auto-hébergé ou local, et personnaliser le délai d'expiration de 30 secondes
des requêtes :

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

## Flux de bout en bout

1. Créez ou mettez à jour un utilisateur final à l'aide de l'identifiant client stable de votre base de données.
2. Créez une session de connexion de courte durée et envoyez son `connectUrl` au
   navigateur du client.
3. Une fois l'OAuth terminé, récupérez la session ou listez les connexions sociales
   du client.
4. Créez une publication immédiate ou programmée à l'aide d'un identifiant de connexion renvoyé.
5. Recevez les résultats de publication via des webhooks signés.

```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.
```

> **[Connecter des comptes](/fr/sdk/connect-accounts.md)**
>
> Créez des utilisateurs finaux et lancez le flux OAuth hébergé.

> **[Publier des posts](/fr/sdk/posts-and-media.md)**
>
> Publiez immédiatement, programmez des publications et importez des médias.

> **[Recevoir des webhooks](/fr/sdk/webhooks.md)**
>
> Vérifiez les charges utiles signées et gérez les nouvelles tentatives en toute sécurité.

> **[Sécuriser l'intégration](/fr/sdk/security-and-errors.md)**
>
> Protégez les clés partenaire et gérez les échecs de l'API.


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