Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Fetch URL liefert keinen Wert

Dein Fetch URL Command läuft, aber die Variable (z.B. %fetchUrlResult.joke%) ist leer oder zeigt den rohen Variablen-Namen im Chat.

  1. Log-Pane öffnen → Command auslösen
  2. Suche nach Fetch URL Einträgen → steht dort ein Status-Code?
  3. Status 200 → JSON-Pfad falsch
  4. Status 4xx/5xx → API-Problem
  5. Kein Eintrag → Sub-Action wurde nicht erreicht (vorherige Sub-Action bricht ab)
UrsacheSymptomFix
JSON-Pfad falschVariable leer trotz Status 200API-Antwort im Browser prüfen, Pfad korrigieren
API-URL falschStatus 404URL im Browser testen: kommt JSON zurück?
API-Key fehltStatus 401/403Header mit API-Key setzen
API gibt kein JSONVariablen leerManche APIs geben Plain-Text → %fetchUrlResult% statt Punkt-Notation
Sonderzeichen in InputURL bricht$urlEncode(%input0%)$ nutzen
  1. Die API-URL im Browser öffnen (oder curl nutzen)
  2. JSON-Antwort anschauen
  3. Pfad von der Wurzel durchgehen

Beispiel API-Antwort:

{
"data": {
"joke": {
"text": "Warum können Geister so schlecht lügen?"
}
}
}

Der richtige Pfad: %fetchUrlResult.data.joke.text%

Häufige Fehler:

❌ %fetchUrlResult.joke% → fehlt "data"
❌ %fetchUrlResult.data.text% → fehlt "joke"
❌ %fetchUrlResult[0].data.text% → kein Array
✅ %fetchUrlResult.data.joke.text% → korrekt

Manche APIs geben keinen JSON zurück, sondern Plain-Text (z.B. wttr.in). Dann gibt es keine Punkt-Notation: der gesamte Text steht in %fetchUrlResult%.

✅ %fetchUrlResult% → "Berlin: ☀️ +22°C"
❌ %fetchUrlResult.temperature% → existiert nicht bei Plain-Text

Füge nach dem Fetch einen Debug-Send ein:

├── Fetch URL: ...
├── Send Message: "DEBUG: Status %fetchUrlStatusCode%, Success: %fetchUrlIsSuccess%"
StatusBedeutungAktion
200OKJSON-Pfad prüfen
400Bad RequestURL/Parameter falsch
401UnauthorizedAPI-Key fehlt oder falsch
403ForbiddenKein Zugriff / API-Key ohne Berechtigung
404Not FoundURL existiert nicht
429Rate LimitedZu viele Requests, Cooldown erhöhen
500+Server ErrorAPI hat ein Problem, nicht du

Wenn die URL %input0% enthält: teste sie zuerst mit einem festen Wert im Browser.

API-URL: https://api.dictionaryapi.dev/api/v2/entries/en/%input0%
Test: https://api.dictionaryapi.dev/api/v2/entries/en/hello

Wenn der Test im Browser funktioniert, aber in SB nicht: prüfe ob %input0% Leerzeichen oder Sonderzeichen enthält → $urlEncode()$.