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.


Einstellungen
-
„URL“ — die Adresse der Anfrage, bis zu 2048 Zeichen. Die Adresse muss mit
http://oderhttps://beginnen. -
„Methode“ —
GET,POST,PUT,DELETEoderPATCH. -
„Header“ — Paare „Name = Wert“, bis zu zehn. Der Button „Header hinzufügen“ fügt eine Zeile hinzu. Ist der Header
Acceptnicht gesetzt, sendet der BlockAccept: 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) undvariables(seine Variablen). Bei Anfragen mit Körper landen die Felder im Körper. BeiGET— 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,404und 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
responseund 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.


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.


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.


Wichtig
Eine Antwort mit Fehlercode — zum Beispiel
404oder500— 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.

