FlutterFlow
A FlutterFlow lefordul egy alkalmazássá, amelyet a felhasználód tart a kezében, így a kérdés nem az, hogy mely mezőket töltsd ki, hanem hogy hol kerül a kulcs. Az alábbi kérés a production környezetbe pontosan úgy lett elküldve, ahogy a hívás összeállítja; a FlutterFlow lépések a FlutterFlow dokumentációja szerint 2026-09-17 állapotában íródtak.
Először hozd létre a kulcsot, ahogy a Kulcs az automatizáláshoz részben le van írva, a chart területtel.
1. Hozd létre a hívást
Szekció neve “1. Hozd létre a hívást”Nyisd meg a API Calls-t, kattints a + Add-ra, válaszd a Create API Call-t és töltsd ki:
-
API Call Name:
Natal chart. -
Method Type:
POST. -
URL:
https://api.astroway.info/v1/chart -
A Headers fülön, + Add Header: egy sor
X-Api-Key:és utána a te kulcsod. A másik sorContent-Type: application/json. -
A Variables fülön: öt String típusú változó,
date,time,timezone,latitude,longitude, mindegyik a lenti JSON-ból származó alapértelmezett értékkel. -
A Body fülön, a legördülő JSON listában: illeszd be a JSON-t és húzd be a változókat.
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}A szélesség és hosszúság sztringként marad szándékosan: az API "50.45"-t számként fogadja, de a sztring egyszerűsíti a változók húzását.
Kattints a Add Call-ra, nyisd meg a Response & Test-et, kattints a Test API Call-ra és nézd meg a választ a Test Response-ban. A data.input.timezoneOffset 4-ként tér vissza: ez a Kyiv időeltolás volt az adott napon.
2. Tedd a hívást priváttá
Szekció neve “2. Tedd a hívást priváttá”A hívás Advanced Settings-ében kapcsold be a Make Private-t, kattints a Save-ra, majd a Deploy APIs-re. Most a hívás a Firebase Cloud Function-ben fut, ezért a projektnek csatlakoztatott Firebase-re és egy Firebase tarifára Cloud Functions-szal van szüksége.
Még két dolog, amit a FlutterFlow dokumentáció egyértelműen mond: a frontendről (például remote config-on keresztül) átadott kulcs nyitva marad még a privát hívásnál is, és a biztonságos forma a hívásba beágyazott fejléc.
3. Olvasd el a választ
Szekció neve “3. Olvasd el a választ”A JSON Paths-nél kattints a + Add JSON Path-ra és adj nevet mindegyiknek:
| Név | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
A jel a hosszúság, 30-cal osztva és lefelé kerekítve, mint index a tizenkét név listájában: például a 159.26 Aszcendenst 5-öt ad, vagyis Szűz. Elég egy négy soros egyedi függvény vagy egy tizenkét soros lista és az index.
A web build nem tud a böngészőből hozzánk fordulni
Szekció neve “A web build nem tud a böngészőből hozzánk fordulni”2026-09-17-én egy külső domainről származó oldalról mérve: a POST /v1/chart preflight-re válaszol access-control-allow-origin fejléc nélkül, és a Chrome blokkolja a kérést. A böngészőnek egy másik domainen csak a /v1/public/* és /v1/embed/* válaszol.
A FlutterFlow a hívásokat saját proxy-n keresztül hajtja végre a tervezőben, a Run és Test módban, így egy ott működő hívás a webalkalmazás közzététele után is elbukhat. Két megoldás van, és az elsőt javasoljuk:
- Tedd a hívást priváttá, ahogy fent. Így a Cloud Function-ben fut, nem a böngészőben, és ez egyből megoldja a kulcs és a CORS kérdéseket.
- Állíts be saját backendet előttünk, ha már van. A FlutterFlow proxy beállítása, saját proxy URL-lel, dokumentált a tervezőben és a Run és Test módokban; a közzétett web buildről a dokumentáció semmit sem mond, így nem érdemes rá számítani.
A nyilvános pk_ kulcs nem oldja meg ezt: csak a /v1/public/* és /v1/embed/* útvonalakat érheti el, és az iOS és Android buildek teljesen elutasítják, mert nem küldenek web-origin-t.
Hibák
Szekció neve “Hibák”401privát hívásnál: a kulcs a csoporton van, nem a híváson.400 INVALID_FIELDatimezone-nál adetails-ben: a zóna üres, ez egy rövidítés, pl.EST, vagy nem egy zóna neve.400adatevagytime-nál adetails-ben: formátum nemYYYY-MM-DD/HH:MM:SS.403 ENDPOINT_NOT_IN_SCOPE: a kulcs területén nincschart.429 KEY_BUDGET_EXHAUSTED: a kulcs kimerítette a saját költségkeretét; emeld a dashboardon.