> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Client

Classe Client principale pour X API

C’est le point d’entrée principal pour interagir avec X API. Elle fournit
l’accès à tous les points de terminaison de l’API via des modules client spécialisés et gère
l’authentification, la configuration des requêtes et la gestion des erreurs.

**`Exemple`**

```typescript theme={null}
import { Client } from '@xdevplatform/xdk';

const client = new Client({
  bearerToken: 'your-bearer-token'
});

// Récupérer les informations de l'utilisateur
const user = await client.users.getUser('783214');

// Récupérer les abonnés avec pagination
const followers = await client.users.getFollowers('783214', {
  maxResults: 10,
  userFields: ['id', 'name', 'username']
});

// Itérer sur les abonnés
for await (const follower of followers) {
  console.log(follower.username);
}
```

<div id="constructors">
  ## Constructeurs
</div>

<div id="constructor">
  ### constructeur
</div>

• **new Client**(`config`): [`Client`](/fr/xdks/typescript/reference/classes/Client)

Crée une nouvelle instance du client X API

<div id="parameters">
  #### Paramètres
</div>

| Nom      | Type  | Description                             |
| :------- | :---- | :-------------------------------------- |
| `config` | `any` | Options de configuration pour le Client |

<div id="returns">
  #### Valeur de retour
</div>

[`Client`](/fr/xdks/typescript/reference/classes/Client)

**`Exemple`**

```typescript theme={null}
// Authentification par jeton Bearer
const client = new Client({
  bearerToken: 'your-bearer-token'
});

// OAuth2 authentication
const client = new Client({
  accessToken: 'your-access-token'
});

// OAuth1 authentication
const client = new Client({
  oauth1: oauth1Instance
});
```

[client.ts:401](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/client.ts#L401)

<div id="properties">
  ## Propriétés
</div>

<ResponseField name="baseUrl" type="string" required>
  URL de base pour les requêtes API
</ResponseField>

<ResponseField name="bearerToken" type="string">
  Jeton Bearer pour l’authentification
</ResponseField>

<ResponseField name="accessToken" type="string">
  Jeton d’accès OAuth2
</ResponseField>

<ResponseField name="oauth1" type="any">
  Instance OAuth1 pour l’authentification
</ResponseField>

<ResponseField name="headers" type="Headers" required>
  En-têtes pour les requêtes
</ResponseField>

<ResponseField name="timeout" type="number" required>
  Délai d’expiration de la requête en millisecondes
</ResponseField>

<ResponseField name="retry" type="boolean" required>
  Indique s’il faut réessayer automatiquement les requêtes ayant échoué
</ResponseField>

<ResponseField name="maxRetries" type="number" required>
  Nombre maximal de tentatives de réessai
</ResponseField>

<ResponseField name="httpClient" type="HttpClient = httpClient" required>
  Client HTTP pour effectuer des requêtes
</ResponseField>

<ResponseField name="general" type="GeneralClient" required>
  client général
</ResponseField>

<ResponseField name="accountActivity" type="AccountActivityClient" required>
  client d’activité de compte
</ResponseField>

<ResponseField name="communityNotes" type="CommunityNotesClient" required>
  client Community Notes
</ResponseField>

<ResponseField name="compliance" type="ComplianceClient" required>
  client de conformité
</ResponseField>

<ResponseField name="connections" type="ConnectionsClient" required>
  client de connexions
</ResponseField>

<ResponseField name="users" type="UsersClient" required>
  client d’utilisateurs
</ResponseField>

<ResponseField name="news" type="NewsClient" required>
  client d’actualités
</ResponseField>

<ResponseField name="spaces" type="SpacesClient" required>
  client Spaces
</ResponseField>

<ResponseField name="activity" type="ActivityClient" required>
  client d’activité
</ResponseField>

<ResponseField name="usage" type="UsageClient" required>
  client d’utilisation
</ResponseField>

<ResponseField name="trends" type="TrendsClient" required>
  client de tendances
</ResponseField>

<ResponseField name="posts" type="PostsClient" required>
  client de Publications
</ResponseField>

<ResponseField name="directMessages" type="DirectMessagesClient" required>
  client de messages privés
</ResponseField>

<ResponseField name="communities" type="CommunitiesClient" required>
  client de communautés
</ResponseField>

<ResponseField name="media" type="MediaClient" required>
  client de médias
</ResponseField>

<ResponseField name="webhooks" type="WebhooksClient" required>
  client de webhooks
</ResponseField>

<ResponseField name="stream" type="StreamClient" required>
  client de flux
</ResponseField>

<ResponseField name="lists" type="ListsClient" required>
  client de Listes
</ResponseField>

<ResponseField name="request" type="Promise<T>" required>
  Effectue une requête authentifiée vers X API

  Cette méthode gère l’authentification, le formatage de la requête et la gestion
  des erreurs pour toutes les requêtes API. Elle ajoute automatiquement les en-têtes
  d’authentification appropriés en fonction de la configuration du client.
</ResponseField>

<ResponseField name="isTokenExpired" type="boolean" required>
  Vérifie si le jeton OAuth2 est expiré
</ResponseField>

<ResponseField name="refreshToken" type="Promise<void>" required>
  Actualise le jeton OAuth2
</ResponseField>

<ResponseField name="isAuthenticated" type="boolean" required>
  Récupère l’état actuel de l’authentification
</ResponseField>

<ResponseField name="mapSecuritySchemeToAuthTypes" type="string[]" required>
  Associe les noms de schémas de sécurité OpenAPI aux types d’authentification internes
</ResponseField>

<ResponseField name="validateAuthentication" type="void" required>
  Valide que la méthode d’authentification requise est disponible
</ResponseField>

<ResponseField name="getAvailableAuthTypes" type="string[]" required>
  Récupère les types d’authentification disponibles
</ResponseField>
