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

# Intégration WebView du Widget

> Wrapper web intégrable pour injecter le widget de chat Lovi

## Introduction

L'endpoint Widget WebView est un wrapper HTML interactif qui vous permet d'intégrer le widget de chat Lovi de manière sécurisée dans des pages web ou des applications mobiles. Au lieu de renvoyer une réponse JSON standard, cet endpoint sert un document HTML complet contenant une `iframe` pointant vers l'interface de chat.

Ce wrapper agit comme un pont sécurisé, récupérant les métadonnées d'intégration nécessaires (comme le message de bienvenue de l'agent et les paramètres de langue) côté serveur et les injectant en toute sécurité dans la webview à l'aide de la communication `postMessage` standard.

***

## 🌐 Obtenir le WebView du Widget

> **Méthode** : GET **Format** : HTML

### Endpoint

```
GET https://cloud.lovi.ai/functions/v1/widgetWebView
```

*Format de chemin alternatif :* `GET https://cloud.lovi.ai/functions/v1/widgetWebView/{customer_id}/{widget_id}`

### Paramètres de Requête

Si vous n'utilisez pas la structure de chemin mentionnée ci-dessus, vous devez passer les paramètres requis dans la chaîne de requête.

| Paramètre     | Requis | Description                                                                                                  |
| ------------- | ------ | ------------------------------------------------------------------------------------------------------------ |
| `customer_id` | Oui    | Votre clé d'accès (Access Key) d'entreprise utilisée pour valider les autorisations.                         |
| `widget_id`   | Oui    | L'`uuid` spécifique du compte de canal/widget que vous souhaitez charger.                                    |
| `lang`        | Non    | Code de langue cible (ex. : `es`, `en`, `pt`). Si fourni, les messages de bienvenue sont traduits.           |
| `showClose`   | Non    | Booléen sous forme de chaîne (`true` ou `false`). Par défaut `true`. Détermine si le widget peut être fermé. |

### Comment ça marche

1. **Authentification** : Le serveur valide le `customer_id` (Access Key) et vérifie la propriété du `widget_id`.
2. **Récupération des métadonnées** : Il récupère la configuration du widget et interroge éventuellement le backend de traduction Lovi pour traduire le message de bienvenue de l'agent dans la langue `lang` demandée.
3. **Livraison HTML** : Le serveur renvoie une page HTML contenant un `<iframe src="https://widget.lovi.ai/?cw_id=...">`.
4. **Pont PostMessage** : Le HTML chargé contient du JavaScript qui écoute les événements `get_widget` et `get_customer` déclenchés par l'iframe. Il répond en toute sécurité avec la configuration du widget (`widgetData`) et gère le stockage local (comme la génération d'un identifiant utilisateur unique).

### Erreurs Courantes

Si le widget ne parvient pas à se charger, vous pouvez recevoir l'un des codes de statut HTTP suivants au lieu de la charge utile HTML :

* **400 Bad Request** : `customer_id` ou `widget_id` manquant, ou `widget_id` n'est pas un UUID valide.
* **403 Forbidden** : `customer_id` invalide (échec de la validation de la Access Key).
* **404 Not Found** : L'entreprise ou le widget spécifié n'a pas pu être trouvé.
* **500 Internal Server Error** : Une erreur inattendue s'est produite lors de la génération du wrapper.

> 🧭 **Important** : Si le widget semble bloqué sur un écran "Loading Widget...", vérifiez la console de votre navigateur. Assurez-vous que votre environnement autorise les iframes cross-origin et ne bloque pas la communication `postMessage` entre le WebView et `widget.lovi.ai`.
