KI fragen
Deutsch DE
Zu Watbot

HTTP-Anfrage

Der Block sendet eine Anfrage an einen fremden Server und wertet die Antwort aus: Er zeigt sie im Chat, schreibt sie in Variablen oder übergibt sie Ihrem Code.

Einstellungspanel des Blocks „HTTP-Anfrage“Einstellungspanel des Blocks „HTTP-Anfrage“

Einstellungen

  • „URL“ — die Adresse der Anfrage, bis zu 2048 Zeichen. Die Adresse muss mit http:// oder https:// beginnen.

  • „Methode“ — GET, POST, PUT, DELETE oder PATCH.

  • „Header“ — Paare „Name = Wert“, bis zu zehn. Der Button „Header hinzufügen“ fügt eine Zeile hinzu. Ist der Header Accept nicht gesetzt, sendet der Block Accept: application/json.

  • „Body“ — der Körper der Anfrage. Das Feld erscheint bei allen Methoden außer GET. Das Format wählen Sie in der Liste:

    • JSON — der Körper wird vollständig im Editor geschrieben;
    • x-www-form-urlencoded — Paare „Schlüssel = Wert“, Zeilen fügt der Button „Zeile hinzufügen“ hinzu;
    • multipart/form-data — dieselben Paare und Dateien. Der Button „Datei hinzufügen“ bietet zwei Wege: „Link zur Datei oder Variable“ — der Bot lädt die Datei über den Link herunter und hängt sie an die Anfrage an, „Lokale Datei“ — die Datei wird vom Computer hochgeladen. Eine Anfrage enthält höchstens 20 Dateien.
  • „Timeout“ — die Wartezeit auf die Antwort des Servers in Sekunden, von 1 bis 60. Standard ist 5.

  • „Kontaktdaten in der Anfrage senden“ — fügt der Anfrage drei Felder hinzu: bot_id (ID des Bots), contact (Daten des Kontakts) und variables (seine Variablen). Bei Anfragen mit Körper landen die Felder im Körper. Bei GET — in der Abfragezeichenfolge, und nur, wenn die Adresse bereits mindestens einen Parameter enthält.

  • „Antwort-Body im Chat ausgeben“ — der Bot sendet dem Kontakt die Antwort des Servers unverändert. Der Schalter ist standardmäßig eingeschaltet; schalten Sie ihn aus, wenn die Antwort nur technisch ist.

  • „Antwortcode in Variable schreiben“ — der Antwortcode (200, 404 und so weiter) wird in der Kontaktvariable gespeichert, deren Namen Sie im Feld „Variable“ angeben.

  • „JSON-Antwort in Variablen schreiben“ — verteilt eine Antwort im JSON-Format auf Kontaktvariablen. Geben Sie im Block „Zuordnung der Variablen“ links den Pfad zum Wert mit Punkten an, rechts den Namen der Variable. Zum Beispiel data.product.name → ware. Ein Element eines Arrays wird über seine Nummer angesprochen: items.0.price. Gibt es unter diesem Pfad keinen Wert, wird eine leere Zeichenfolge in die Variable geschrieben.

  • „Server für die Anfrage“ — von wo die Anfrage ausgeht: „Standard“, „Europa“ oder „SOCKS5-Proxy“. Für einen eigenen Proxy füllen Sie „Host“ und „Port“ aus und, wenn der Proxy eine Anmeldung verlangt, „Benutzer“ und „Passwort“.

  • „Antwort mit JavaScript verarbeiten“ — öffnet den Code-Editor. Der Code erhält die Antwort des Servers im Objekt response und kann alles, was auch der Code des Blocks „JavaScript-Interpreter“ kann. Mehr dazu im Abschnitt „Antwort per Code verarbeiten“.

Darunter folgen in den Einstellungen die üblichen Abschnitte „Menü“ und „Zusätzlich“ — dieselben wie bei Blöcken mit einer Nachricht.

Antwortcode in eine Variable, JSON-Antwort in Variablen: order.id und order.statusAntwortcode in eine Variable, JSON-Antwort in Variablen: order.id und order.status

Daten einfügen

In der Adresse, in den Werten der Header, im Körper der Anfrage und in den Pfaden von „Zuordnung der Variablen“ funktionieren Platzhalter:

https://example.com/api/orders?phone={{ phone }}&city={{ $stadt }}

Im Körper des Formats JSON werden die Platzhalter vor dem Parsen ersetzt. Entsteht dabei ungültiges JSON — zum Beispiel, weil der Wert einer Variable ein Anführungszeichen enthält —, geht die Anfrage mit leerem Körper hinaus, und im „Ausführungsprotokoll“ erscheint der Fehler Invalid JSON.

POST-Anfrage mit Authorization-Header und JSON-Body mit PlatzhalternPOST-Anfrage mit Authorization-Header und JSON-Body mit Platzhaltern

Ausgänge

  • Menüpunkte — wenn Sie welche im „Menü“ hinzugefügt haben, wartet der Bot auf die Antwort der Person, wie in einem gewöhnlichen Block mit Buttons.
  • „Jede andere Phrase“ — die Person hat etwas geschrieben, das im Menü nicht vorkommt.
  • „Keine Antwort vom Server“ — der Server hat in der Zeit aus dem Feld „Timeout“ nicht geantwortet, die Verbindung kam nicht zustande oder die Anfrage ist fehlgeschlagen.
  • „Fortsetzen“ — das Szenario geht sofort nach der Anfrage weiter, ohne auf die Antwort der Person zu warten.
Block „HTTP-Anfrage“ im Schema: Ausgänge „Keine Antwort vom Server“, „Beliebige andere Phrase“ und „Weiter“Block „HTTP-Anfrage“ im Schema: Ausgänge „Keine Antwort vom Server“, „Beliebige andere Phrase“ und „Weiter“

Wichtig

Eine Antwort mit Fehlercode — zum Beispiel 404 oder 500 — ist für den Block eine gewöhnliche Antwort: Der Ausgang „Keine Antwort vom Server“ wird nicht ausgelöst. Schreiben Sie den Antwortcode in eine Variable und prüfen Sie ihn im nächsten Block.

Grenzen

  • Anfragen an interne Adressen und an Adressen der Plattform selbst sind verboten: Eine solche Anfrage wird nicht gesendet, im „Ausführungsprotokoll“ bleibt der Fehler URL is not valid.
  • Der Block folgt höchstens fünf Weiterleitungen hintereinander.
  • An eine Domain gehen von der gesamten Plattform höchstens 10 Anfragen pro Sekunde. Überzählige Anfragen warten, bis sie an der Reihe sind.
  • In „Zuordnung der Variablen“ — bis zu 300 Zeilen.

Antwort per Code verarbeiten

Der Code aus dem Feld „Antwort mit JavaScript verarbeiten“ wird nach den übrigen Einstellungen des Blocks ausgeführt. Die Antwort des Servers liegt im Objekt response:

Feld Was darin steht
response.status Antwortcode, eine Zahl
response.body Körper der Antwort als Zeichenfolge
response.data Der geparste Körper, wenn der Server im JSON-Format geantwortet hat

Mehr dazu unter Eingebaute Variablen.

if (response.status === 200 && response.data.paid) {
    setContactVariable('bezahlt', 'ja');
} else {
    sendMessage('Die Zahlung ist noch nicht eingegangen.');
    disableContinue();
}

Funktionen und Grenzen sind dieselben wie beim Block „JavaScript-Interpreter“. Endet der Code mit einem Fehler, geht der Fehlertext in den Chat, und die Verbindung „Fortsetzen“ wird nicht ausgelöst.

„Antwort mit JavaScript verarbeiten“ ist aktiv: Der Code prüft den Antwortcode und sendet eine Nachricht„Antwort mit JavaScript verarbeiten“ ist aktiv: Der Code prüft den Antwortcode und sendet eine Nachricht