API Calls

API Calls

Der Chatbot kann an einer bestimmten Stelle im Dialog einen Webservice Aufruf (API Call) zu einem externen System absetzen, um sich dort zusätzliche Daten zu holen.

Wenn du diese Funktion nutzen möchtest, kontaktiere bitte unseren Support ([email protected]). Wenn das Modul aktiviert ist, erscheint in der Detailansicht eines Dialogs ein zusätzliches Feld für die URL, die bei dem API Call angesteuert werden soll (Endpoint). Zusätzlich kann man noch aus den klassischen Methoden GET, PUT, POST, DELETE auswählen.

In unserem Beispiel wird das aktuelle Wetter von einem Wetterdienst abgerufen. In der Variable $openweather$ wird der von einer/einem Nutzer:in eingegebene Ort an die API weitergegeben.

Die API Response sieht folgendermaßen aus:

{
  "coord": {
    "lon": 13.39,
    "lat": 52.52
  },
  "weather": [
    {
      "id": 800,
      "main": "Clear",
      "description": "clear sky",
      "icon": "01d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 15.41,
    "pressure": 1011,
    "humidity": 71,
    "temp_min": 13.33,
    "temp_max": 17.78
  },
  "visibility": 10000,
  "wind": {
    "speed": 6.2,
    "deg": 250
  },
  "clouds": {
    "all": 0
  },
  "dt": 1556174824,
  "sys": {
    "type": 1,
    "id": 1275,
    "message": 0.0073,
    "country": "DE",
    "sunrise": 1556164069,
    "sunset": 1556216448
  },
  "id": 2950159,
  "name": "Berlin",
  "cod": 200
}

Die Response der API kann dann mittels JSON-Path in der Bot-Antwort ausgegeben werden, z.B. $api.main.temp$ für die Temperatur. $api$ ist hier das JSON-Objekt der Response.

In Aktion sieht das Ganze dann so aus:

Man kann die Response auch in Bedingungen nutzen um beispielsweise Fehlermeldungen abzufangen (siehe oben: im Falle von einem erfolgreichen Aufruf, $api.cod$ == 200, wird eine Wettervorhersage ausgegeben).

Mit Hilfe folgender Syntax kann ein Wert aus einer API-Response in eine Variable gespeichert und somit für weitere Zwecke genutzt werden: $temperature=($api.main.temp$)$ wobei $temperature$ die Variable ist, in die der Wert gespeichert werden soll und $api.main.temp$ ist der Wert aus der API Response.