# Intégration avec des API tierces

Vous pouvez créer des bots qui interagissent avec d’autres services via des API. Par exemple, les bots peuvent envoyer des requêtes pour vérifier la disponibilité à une date précise ou pour trouver un produit dans une boutique en ligne.

## Comment interagir avec des API tierces en prenant Dadata comme exemple

Prenons comme exemple une API de suggestion d’adresse : <https://dadata.ru/api/suggest/address/> <mark style="color:red;">**le lien sera différent**</mark>

{% hint style="info" %}
Lisez attentivement la documentation des API tierces.
{% endhint %}

{% hint style="warning" %}
Attention ! Les API tierces nécessitent les adresses IP depuis lesquelles les requêtes seront envoyées : 158.160.49.208 – site web.
{% endhint %}

Dans le champ « URL de la requête », saisissez `https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address`.

Dans l’onglet **« En-tête de la requête »** dans le champ, saisissez l’en-tête au format JSON : `{"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}`.

Dans l’onglet **« Paramètres JSON »** dans le champ, saisissez la requête elle-même : `{"query": "#{CurrencyType}"}`.

Pour obtenir le résultat de la requête, renseignez le **« Valeurs enregistrées »** .

Un exemple de requête est présenté dans l’illustration ci-dessous.

![](/files/9eaaa8c4e1981028a0e6eda162b7b8c589436be0)

### Comment enregistrer des valeurs à partir de variables

Ce n’est peut-être pas entièrement clair au premier abord — il faut vraiment l’essayer soi-même.

Commencez par saisir #{custom\_answer} dans le champ « Réponse ». (La variable #{custom\_answer} contient la réponse reçue du serveur indiqué dans le champ « URL de réponse ».)

Exécutez le bloc de requête pour envoyer la requête et obtenir la réponse. La réponse reçue doit être analysée, et vous devez déterminer quelles variables en extraire. Pour cela, utilisez le champ « Valeurs enregistrées ».

Passons en revue l’exemple décrit ci-dessus.

La meilleure façon de comprendre comment adresser des données en JSON est de passer par un exemple. À la suite de notre requête, la réponse reçue dans #{custom\_answer} ressemble à ceci :

`{\r"suggestions": [\r{\r"value": "US Dollar",\r"unrestricted_value": "US Dollar",\r"data": {\r"code": "840",\r"strcode": "USD",\r"name": "US Dollar",\r"country": "United States"\r}\r}\r]\r}`

Dans le champ « Valeurs enregistrées », saisissez VALEUR -> VARIABLE :

`suggestions|0|value->CurrencyType;` \
`suggestions|0|data|code->CurrencyDigCode;` \
`suggestions|0|data|strcode->CurrencyStrCode;` \
`suggestions|0|data|country->CurrencyCountry`

**suggestions -** clé du tableau \[{"value": "US Dollar", "unrestricted\_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]

**suggestions|0** - clé du premier élément du tableau {"value": "US Dollar", "unrestricted\_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}

**suggestions|0|value** - clé de la valeur « US Dollar »

La clé la plus longue dans ce JSON :

**suggestions|0|data|strcode** - clé de la valeur « USD »

{% hint style="success" %}
Les clés sont séparées par une barre verticale (|). Si un élément JSON est un tableau, vous accédez à ses éléments par index, en commençant par 0, et cela s’écrit aussi à l’aide d’une barre verticale.
{% endhint %}

{% hint style="info" %}
Vous devez répéter tout l’imbrication. Pour plus de commodité, vous pouvez visualiser le JSON à l’aide d’une application de visualisation JSON.
{% endhint %}

Le niveau d’imbrication est séparé par une barre verticale. Autrement dit, vous devez lister toutes les clés pour atteindre la valeur, en les séparant par une barre verticale.

{% hint style="info" %}
Si le JSON contient un tableau, utilisez l’index de l’élément au lieu d’une clé, en commençant à zéro.
{% endhint %}

Séparez les expressions permettant d’obtenir nos variables par un point-virgule ;.

Chaque expression se compose du chemin vers les données dans la réponse et du nom de la variable dans laquelle les enregistrer, séparés par ->.

La requête de recherche représente le chemin dans le JSON vers la valeur requise.

### Développement d’API pour les bots

Le bot prend en charge les requêtes GET et POST, qui sont les principaux types utilisés dans la plupart des API publiques.

**GET** est une requête qui se produit lorsque vous cliquez sur un lien ou ouvrez une URL dans un navigateur. Les paramètres de cette requête sont transmis dans l’URL.

Syntaxe de transmission des paramètres : après l’URL, placez un point d’interrogation ?, puis séparez chaque paramètre par une esperluette &. Chaque paramètre se compose d’un nom suivi de = et de sa valeur.

Exemple d’URL avec un paramètre :

![Fig. 3](/files/90e47e4d5094caaedd74b0c19677c9c1f0f9c604)

Ici, un seul paramètre q est transmis avec la valeur « good music ». %20 représente un espace.

Lorsque vous travaillez avec le builder, vous pouvez simplement utiliser un espace — le bot le remplacera automatiquement.

**POST** est une requête le plus souvent envoyée lors de l’envoi d’un formulaire sur un site web. Les paramètres sont envoyés dans le corps de la requête. Bien qu’ils puissent aussi être envoyés dans l’URL comme dans les requêtes GET, c’est rare. Les paramètres dans le corps peuvent être au format JSON ou sous forme de paires clé-valeur. Les formulaires envoient généralement des paires clé-valeur, tandis que les API utilisent le plus souvent JSON.

**En-tête de la requête** - vous pouvez ajouter un en-tête à chaque requête. Le plus souvent, il spécifie le format des données et les clés d’accès. En général, ce champ est laissé vide, mais dans de rares cas, vous devez inclure un jeton d’API ou un type de requête, par exemple : « Content-Type »: « application/json ».

**JSON** (JavaScript Object Notation, généralement prononcé /ˈdʒeɪsən/ JAY-sən) est un format d’échange de données basé sur JavaScript. Comme beaucoup d’autres formats textuels, JSON est facile à lire pour les humains. Pour travailler avec les API dans le bot, vous devez comprendre ce format, car il sous-tend toutes les interactions.

Avant de continuer, lisez les articles suivants :

<https://www.json.org/json-ru.html>\
<https://developer.mozilla.org/ru/docs/Learn/JavaScript/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/JSON>

Essayez aussi de créer votre propre fichier JSON sur ce site :

<https://jsoneditoronline.org/>

**Pratique**&#x20;

Les requêtes peuvent être exécutées par des blocs et des conditions. Les requêtes conditionnelles sont conçues pour vérifier si un dialogue peut suivre une certaine branche sur le site. Dans ce cas, la requête est envoyée chaque fois que la condition de la branche est évaluée. Les requêtes dans les blocs, en revanche, ne sont exécutées que lorsque le dialogue entre dans cet état.

Avant de créer une requête, vous devez choisir son type :

![](/files/a00f10eb8b89bfceab781d68546ae6a308b090f0)

POST-data et POST-JSON diffèrent dans la manière dont les paramètres sont envoyés, comme mentionné précédemment (soit au format JSON, soit sous forme de paires clé-valeur). Si vous choisissez JSON, les paramètres ne peuvent être envoyés que dans le corps de la requête. Un champ supplémentaire apparaîtra pour les paramètres POST au format JSON.

**Important !** Les paramètres doivent être écrits uniquement au format JSON, car le bot travaille exclusivement avec ce format. Vous avez déjà pratiqué l’écriture de JSON.

La réponse du serveur peut être analysée et enregistrée dans des variables.&#x20;

{% hint style="info" %}
Vous ne pouvez analyser une réponse que si elle est au format JSON.
{% endhint %}

Les variables enregistrées sont consignées dans le dernier formulaire non rempli. Si le formulaire est soumis via un bloc rouge, les variables sont supprimées. Par conséquent, si vous devez enregistrer ces données, transmettez les variables au système CRM via un bloc jaune.

Vous pouvez également voir ce que le bot a enregistré dans les variables dans la section « Leads ».

![Fig. 8](/files/d8b3d64300b6dea528fb29ceefba75fd55b209fd)

### Passer des variables autrement qu’en tant que chaîne

Par défaut, les valeurs des variables doivent être des chaînes au format "#{}", mais dans ce cas, la variable est envoyée sous forme de chaîne. Pour transmettre une variable sous forme de nombre, vous devez désactiver la vérification du format des paramètres dans les paramètres du projet :

<figure><img src="/files/2e2d32b942961bbb31561845f2a0debddf74e157" alt=""><figcaption></figcaption></figure>

Ensuite, vous pouvez simplement utiliser le nom de la variable, par exemple : `{"key": #{variable_name}}`, où variable\_name est la variable elle-même — sans guillemets autour.

{% hint style="warning" %}
Il est recommandé de réactiver la vérification du format après avoir défini les paramètres.
{% endhint %}


---

# 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://docs.mavibot.ai/doc/fr/travailler-avec-lapi/integration-avec-des-api-tierces.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.
