# Référence de l’API

Docs Embed fournit différentes API selon la manière dont vous l’intégrez. Cette référence couvre toutes les méthodes disponibles selon les méthodes d’intégration.

## Comparaison des méthodes

| Méthode                               | Script autonome                                              | Package NPM                           | Composants React                     |
| ------------------------------------- | ------------------------------------------------------------ | ------------------------------------- | ------------------------------------ |
| **Initialiser**                       | `GitBook('init', options, frameOptions)`                     | `createGitBook(options)`              | `<GitBookProvider siteURL="...">`    |
| **Remplacement du thème de couleurs** | `GitBook('init', options, { colorScheme })`                  | `client.getFrameURL({ colorScheme })` | `<GitBookFrame colorScheme="..." />` |
| **Obtenir l’URL du cadre**            | ❌ (géré en interne)                                          | `client.getFrameURL(options)`         | `useGitBook().getFrameURL(options)`  |
| **Créer un client de cadre**          | ❌ (géré en interne)                                          | `client.createFrame(iframe)`          | `useGitBook().createFrame(iframe)`   |
| **Afficher/Masquer le widget**        | `GitBook('show')` / `GitBook('hide')`                        | ❌                                     | ❌                                    |
| **Ouvrir/Fermer la fenêtre**          | `GitBook('open')` / `GitBook('close')` / `GitBook('toggle')` | ❌                                     | ❌                                    |
| **Naviguer vers une page**            | `GitBook('navigateToPage', path)`                            | `frame.navigateToPage(path)`          | Via le client du cadre               |
| **Naviguer vers l’assistant**         | `GitBook('navigateToAssistant')`                             | `frame.navigateToAssistant()`         | Via le client du cadre               |
| **Publier un message**                | `GitBook('postUserMessage', message)`                        | `frame.postUserMessage(message)`      | Via le client du cadre               |
| **Effacer la discussion**             | `GitBook('clearChat')`                                       | `frame.clearChat()`                   | Via le client du cadre               |
| **Configurer**                        | `GitBook('configure', settings)`                             | `frame.configure(settings)`           | Props sur `<GitBookFrame>`           |
| **Écouteurs d’événements**            | ❌                                                            | `frame.on(event, listener)`           | Via le client du cadre               |
| **Décharger**                         | `GitBook('unload')`                                          | ❌                                     | ❌                                    |

## API du script autonome

### Initialisation

#### `GitBook('init', options, frameOptions)`

Initialisez le widget avec l’URL du site et un accès authentifié facultatif.

**Paramètres :**

* `options`: `{ siteURL: string }` - L’URL de votre site de documentation GitBook
* `frameOptions`: `{ visitor?: { token?: string, unsignedClaims?: Record<string, unknown> }, colorScheme?: 'light' | 'dark' }` (facultatif) - Options du cadre

**Exemple :**

```javascript
window.GitBook('init', 
  { siteURL: 'https://docs.company.com' },
  { visitor: { token: 'your-jwt-token' }, colorScheme: 'dark' }
);
```

Lorsque omis, `colorScheme` suit le `color-scheme`.

### Contrôle du widget

#### Afficher le widget

Affiche le widget GitBook s’il a été masqué.

**Exemple :**

```js
window.GitBook("show");
```

#### Masquer le widget

Masque le widget GitBook sans le décharger.

**Exemple :**

```js
window.GitBook("hide");
```

#### Ouvrir la fenêtre

Ouvre la fenêtre Docs Embed.

**Exemple :**

```js
window.GitBook("open");
```

#### Fermer la fenêtre

Ferme la fenêtre Docs Embed.

**Exemple :**

```js
window.GitBook("close");
```

#### Basculer la fenêtre

Bascule l’ouverture ou la fermeture de la fenêtre Docs Embed.

**Exemple :**

```js
window.GitBook("toggle");
```

#### Décharger le widget

Supprime complètement le widget GitBook de votre site.

**Exemple :**

```js
window.GitBook("unload");
```

### Navigation

#### `GitBook('navigateToPage', path)`

Naviguez vers une page spécifique de votre documentation GitBook par son chemin.

**Paramètres :**

* `path` (string) : Le chemin vers la page vers laquelle vous souhaitez naviguer

**Exemple :**

```javascript
// Naviguer vers le guide de démarrage
window.GitBook("navigateToPage", "/getting-started");

// Naviguer vers une page de documentation API spécifique
window.GitBook("navigateToPage", "/api/authentication");

// Naviguer vers la section FAQ
window.GitBook("navigateToPage", "/faq/billing");
```

#### `GitBook('navigateToAssistant')`

Naviguer directement vers l’onglet Assistant.

**Exemple :**

```javascript
// Passer à l’onglet assistant
window.GitBook("navigateToAssistant");

// Vous pourriez utiliser cela en réponse à un clic sur un bouton
document.getElementById("help-button").addEventListener("click", () => {
  window.GitBook("navigateToAssistant");
});
```

### Chat

#### `GitBook('postUserMessage', message)`

Publie un message dans le chat comme si l’utilisateur l’avait saisi.

**Paramètres :**

* `message` (string) : Le message à publier dans le chat

**Exemple :**

```javascript
// Envoyer un message prédéfini
window.GitBook("postUserMessage", "How do I reset my password?");

// Envoyer un message en fonction de l’action de l’utilisateur
function askAboutBilling() {
  window.GitBook("postUserMessage", "I have questions about my billing");
}

// Envoyer un message avec contexte
const userPlan = "premium";
window.GitBook(
  "postUserMessage",
  `Je suis sur l’offre ${userPlan} et j’ai besoin d’aide avec des fonctionnalités avancées`
);
```

#### `GitBook('clearChat')`

Efface tous les messages de la session de chat en cours.

**Exemple :**

```javascript
// Effacer le chat
window.GitBook("clearChat");

// Effacer le chat et commencer une nouvelle conversation
function startNewConversation() {
  window.GitBook("clearChat");
  window.GitBook("postUserMessage", "Hello, I need help with a new issue");
}

// Effacer le chat lors du changement de contexte
document.getElementById("new-topic").addEventListener("click", () => {
  window.GitBook("clearChat");
  window.GitBook("navigateToAssistant");
});
```

### Configuration

#### `GitBook('configure', settings)`

Configurez l’intégration avec des options de personnalisation. Consultez la [section Configuration](/docs/documentation/fr/docs-site/embedding/implementation/script.md#configuration-options) pour connaître les options disponibles.

**Exemple :**

```javascript
window.GitBook('configure', {
  trademark: false,
  tabs: ['assistant', 'search', 'docs'],
  actions: [
    {
      icon: 'circle-question',
      label: 'Contact Support',
      onClick: () => window.open('https://support.example.com', '_blank')
    }
  ],
  greeting: { title: 'Welcome!', subtitle: 'How can I help?' },
  assistantName: 'Support Copilot',
  closeButton: true,
  suggestions: ['What is GitBook?', 'How do I get started?']
});
```

## API du package NPM

### Usine de client

#### `createGitBook(options)`

Crée une instance de client GitBook.

**Paramètres :**

* `options`: `{ siteURL: string }` - L’URL de votre site de documentation GitBook

**Renvoie :** `GitBookClient`

**Exemple :**

```javascript
import { createGitBook } from '@gitbook/embed';

const gitbook = createGitBook({
  siteURL: 'https://docs.company.com'
});
```

#### `client.getFrameURL(options)`

Obtenez l’URL de l’iframe avec un accès authentifié facultatif.

**Paramètres :**

* `options`: `{ visitor?: { token?: string, unsignedClaims?: Record<string, unknown> }, colorScheme?: 'light' | 'dark' }` (facultatif)

**Renvoie :** `string`

**Exemple :**

```javascript
const iframeURL = gitbook.getFrameURL({
  colorScheme: 'dark',
  visitor: {
    token: 'your-jwt-token',
    unsignedClaims: { userId: '123', plan: 'premium' }
  }
});
```

#### `client.createFrame(iframe)`

Crée un client de cadre pour communiquer avec l’iframe.

**Paramètres :**

* `iframe`: `HTMLIFrameElement` - L’élément iframe

**Renvoie :** `GitBookFrameClient`

**Exemple :**

```javascript
const iframe = document.createElement('iframe');
iframe.src = gitbook.getFrameURL();
const frame = gitbook.createFrame(iframe);
```

### Méthodes du client de cadre

#### `frame.navigateToPage(path)`

Naviguez vers une page spécifique dans l’onglet docs.

**Paramètres :**

* `path`: `string` - Le chemin vers la page

#### `frame.navigateToAssistant()`

Passe à l’onglet assistant.

#### `frame.postUserMessage(message)`

Publie un message dans le chat.

**Paramètres :**

* `message`: `string` - Le message à publier

#### `frame.clearChat()`

Efface l’historique du chat.

#### `frame.configure(settings)`

Configure l’intégration. Consultez la [section Configuration](/docs/documentation/fr/docs-site/embedding/implementation/nodejs.md#configuration-options) pour connaître les options disponibles.

#### `frame.on(event, listener)`

Enregistre un écouteur d’événements.

**Paramètres :**

* `event`: `string` - Le nom de l’événement
* `listener`: `Function` - La fonction de rappel

**Renvoie :** `() => void` - Fonction de désabonnement

**Exemple :**

```javascript
const unsubscribe = frame.on('close', () => {
  console.log('Frame closed');
});

// Plus tard, désabonnez-vous
unsubscribe();
```

## API des composants React

Consultez le [guide d’intégration React](/docs/documentation/fr/docs-site/embedding/implementation/react.md) pour les props des composants et l’API du hook `useGitBook` .

`GitBookFrame` prend en charge `assistantName`, `closeButton`, `colorScheme="light" | "dark"`, et la `visitor` prop pour l’accès authentifié.

`useGitBook().getFrameURL()` accepte le même `colorScheme` paramètre que le package NPM.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.com/docs/documentation/fr/docs-site/embedding/configuration/reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
