# Scripts serveurs

Allez dans Contenus > Connaissances > Avancé > Scripts serveurs

Ici, vous pouvez ajouter des fonctions javascript qui peuvent être utilisées lors de la configuration d'une connaissance, comme par exemple.

<figure><img src="https://1101559743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgMQl4578l4DzuAEhrEii%2Fuploads%2Ffdr4182EKYw168WxY1mS%2Fimage.png?alt=media&#x26;token=a76f5d3d-0378-40cb-a605-1bcea1eaafef" alt=""><figcaption></figcaption></figure>

Dans les scripts serveurs, vous pouvez notamment ajouter des éléments permettant de récupérer des informations sur le serveur : getHostType, getHostName, getServerType.

## console

L'objet **console** permet d'alimenter les logs présents dans la page console du BMS et cela pour les différents niveaux de logs

```
function logs() {
    console.debug("un message debug");
    console.info("un message info");
    console.warn("un message warn");
    console.error("un message error");            
}
```

## callApi

Pour déclencher l'appel à une API depuis un script serveur, il faut utiliser la syntaxe suivante. Il faut pour le moment encadrer cela dans un **JSON.parse()**, mais cela ne sera plus nécessaire par la suite.

```
var result = JSON.parse(callApi.process(apiName, params));
```

avec **apiName** contenant le nom du web service défini

et **params** contenant un object JSON contenant un mapping entre les clefs utilisées par le web service et les valeurs à utiliser. Exemple de **params** ci-dessous

```
{
    'capture.latitude': latitude,
    'capture.longitude': longitude,
    'capture.zoom': '2'
}
```

## capture

Le script serveur peut lire des variables de la conversation en cours via l'objet **capture**. Par exemple pour connaître le numéro de l'appelant pour le callbot cela peut être fait via

```
function logNumero() {
    console.info('Appel reçu du numéro ' + capture.callbot_client_phone);
}
```

## dialog

L'objet **dialog** permet de récupérer de nombreuses d'informations , parmi lesquels on retrouve:&#x20;

* Le nom de l'espace de consultation en cours d'utilisation dans la conversation:

```
function logSpace() {
    var space = dialog.currentConsultationSpace();
    console.info('espace en cours ' + space);
}
```

* La langue utilisée :  **dialog.language()**

```
function getDialoglanguage() {
    var language = dialog.language();
    console.info('Language en cours ' + language);
}
```

* L'URL en cours : **dialog.userURL()**

```
function getDialogUrl() {
    var url = dialog.userURL();
    console.info('Url en cours ' + url);
}
```

* L'ID de l'utilisateur (adresse IP, ..) : **dialog.userIdentification()**

```
function getDialogId() {
    var id = dialog.userIdentification();
    console.info('ID en cours ' + id);
}
```

* Le système d'exploitation (Os) utilisé : **dialog.userOs()**

```
function getDialogOs() {
    var Os = dialog.userOs();
    console.info('Os en cours ' + Os);
}
```

* Le navigateur utilisé : **dialog.userBrowser()**

```
function getDialogBrowser() {
    var Browser = dialog.userBrowser();
    console.info('Browser en cours ' + Browser);
}
```

* Les différentes requêtes de l'utilisateur : **dialog.currentUserSentence()**

```
function userSentenceFromScript() {
   return dialog.currentUserSentence()
}
```

* La réponse du bot pour l'intéraction en cours : **dialog.currentAnswer()**

```
function getCurrentAnswer() {
    return dialog.currentAnswer();
}
```
