Zum Inhalt springen
AstroWay/api v2.190.0 · de
alle Systeme in Ordnung

FlutterFlow

FlutterFlow wird zu einer App kompiliert, die dein Nutzer in der Hand hält, daher geht es nicht darum, welche Felder ausgefüllt werden müssen, sondern wo der Schlüssel landet. Die untenstehende Anfrage wurde exakt so an die Produktion gesendet, wie sie vom Aufruf zusammengesetzt wird; die Schritte in FlutterFlow basieren auf der FlutterFlow‑Dokumentation vom 2026‑09‑17.

Erstelle zuerst einen Schlüssel, wie im Abschnitt Schlüssel für die Automatisierung beschrieben, mit dem Bereich chart.

Öffne API Calls, klicke + Add, wähle Create API Call und fülle aus:

  • API Call Name: Natal chart.

  • Method Type: POST.

  • URL:

    https://api.astroway.info/v1/chart
  • Reiter Headers, + Add Header: eine Zeile X-Api-Key: gefolgt von deinem Schlüssel. Eine zweite Zeile Content-Type: application/json.

  • Reiter Variables: fünf Variablen vom Typ String, date, time, timezone, latitude, longitude, jede mit einem Standardwert aus dem JSON unten.

  • Reiter Body, im Dropdown JSON: füge das JSON ein und ziehe die Variablen hinein.

{
"date": "1990-05-15",
"time": "14:30:00",
"timezone": "Europe/Kyiv",
"latitude": "50.45",
"longitude": "30.52"
}

Breite und Länge bleiben bewusst Strings: Die API akzeptiert "50.45" als Zahl, und ein String erleichtert das Ziehen der Variablen.

Klicke Add Call, öffne Response & Test, klicke Test API Call und sieh dir die Antwort in Test Response an. data.input.timezoneOffset wird als 4 zurückgegeben: genau dieser Offset hielt Kiew zu diesem Datum.

Aktiviere im Advanced Settings des Aufrufs Make Private, klicke Save, dann Deploy APIs. Jetzt wird der Aufruf in einer Firebase Cloud Function ausgeführt, sodass das Projekt ein angeschlossenes Firebase und einen Firebase‑Tarif mit Cloud Functions benötigt.

Noch zwei Dinge, die die FlutterFlow‑Dokumentation klar sagt: Ein Schlüssel, der vom Frontend übermittelt wird, zum Beispiel via Remote Config, bleibt selbst bei einem privaten Aufruf offen, und die sichere Form ist ein Header, der direkt im Aufruf eingebettet ist.

Im JSON Paths klicke + Add JSON Path und gib jedem einen Namen:

NameJSON Path
ascendant$.data.houses.ascendant
sunLongitude$.data.planets[0].longitude
moonLongitude$.data.planets[1].longitude
offsetUsed$.data.input.timezoneOffset

Das Zeichen ist die Länge, geteilt durch 30 und abgerundet, als Index in einer Liste von zwölf Namen: Zum Beispiel ergibt der Aszendent 159.26 den Wert 5, also Jungfrau. Eine benutzerdefinierte Funktion von vier Zeilen oder eine Liste mit zwölf Einträgen und dem Index reicht aus.

Web-Build kann nicht aus dem Browser zu uns greifen

Abschnitt betitelt „Web-Build kann nicht aus dem Browser zu uns greifen“

Gemessen am 2026‑09‑17 von einer Seite auf einer fremden Domain: POST /v1/chart antwortet auf den Preflight ohne Header access-control-allow-origin, und Chrome blockiert die Anfrage. Für den Browser auf einer fremden Domain antworten nur /v1/public/* und /v1/embed/*.

FlutterFlow leitet Aufrufe über einen eigenen Proxy im Builder, im Run‑Modus und Test‑Modus, sodass ein Aufruf, der dort funktioniert, nach der Veröffentlichung der Web‑App fehlschlagen kann. Zwei Lösungen, und die erste empfehlen wir:

  • Mache den Aufruf privat, wie oben. Dann wird er in einer Cloud Function ausgeführt und nicht im Browser, was sofort sowohl das Schlüssel‑ als auch das CORS‑Problem löst.
  • Stelle uns ein eigenes Backend zur Verfügung, falls du bereits eines hast. Die Proxy‑Einstellungen in FlutterFlow, zusammen mit einer eigenen proxy URL, sind für den Builder und die Run‑ und Test‑Modi dokumentiert; die Dokumentation sagt nichts über die veröffentlichte Web‑Build, daher sollte man dort nicht darauf zählen.

Ein öffentlicher Schlüssel pk_ löst das nicht: Er greift nur auf /v1/public/* und /v1/embed/* zu, und wird von Builds für iOS und Android komplett abgelehnt, weil sie keinen Web‑Origin senden.

  • 401 bei privatem Aufruf: Der Schlüssel liegt auf der Gruppe, nicht auf dem Aufruf.
  • 400 INVALID_FIELD mit timezone in details: Die Zone ist leer, es ist eine Abkürzung wie EST oder kein Zonenname.
  • 400 mit date oder time in details: Das Format ist nicht YYYY-MM-DD / HH:MM:SS.
  • 403 ENDPOINT_NOT_IN_SCOPE: Der Bereich des Schlüssels enthält kein chart.
  • 429 KEY_BUDGET_EXHAUSTED: Der Schlüssel hat sein Budget erschöpft; erhöhe es im Dashboard.
Hilfreich?
Запропонувати правку

Zuletzt aktualisiert: