FlutterFlow
FlutterFlow se kompiluje do aplikace, kterou má ve svých rukou tvůj uživatel, takže nejde o to, jaká pole vyplnit, ale kde se klíč objeví. Níže uvedený požadavek byl odeslán do produkce přesně v tom tvaru, v jakém jej sestaví volání; kroky ve FlutterFlow jsou napsány podle dokumentace FlutterFlow k 2026-09-17.
Nejprve vytvoř klíč, jak je popsáno v sekci Klíč pro automatizaci, s oblastí chart.
1. Vytvoř volání
Sekce “1. Vytvoř volání”Otevři API Calls, klikni na + Add, vyber Create API Call a vyplň:
-
API Call Name:
Natal chart. -
Method Type:
POST. -
URL:
https://api.astroway.info/v1/chart -
Záložka Headers, + Add Header: jeden řádek
X-Api-Key:a pak tvůj klíč. Druhý řádekContent-Type: application/json. -
Záložka Variables: pět proměnných typu String,
date,time,timezone,latitude,longitude, každá s výchozí hodnotou z JSON níže. -
Záložka Body, v rozbalovacím seznamu JSON: vlož JSON a přetáhni do něj proměnné.
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}Šířka a délka zůstávají řetězci úmyslně: API přijímá "50.45" jako číslo, ale řetězec usnadňuje přetahování proměnných.
Klikni na Add Call, otevři Response & Test, klikni na Test API Call a podívej se na odpověď v Test Response. data.input.timezoneOffset se vrací jako 4: právě takový posun měl Kyjev v ten den.
2. Udělej volání soukromým
Sekce “2. Udělej volání soukromým”V Advanced Settings volání zapni Make Private, klikni na Save, pak Deploy APIs. Nyní se volání provádí v Firebase Cloud Function, takže projekt potřebuje připojený Firebase a tarif Firebase s Cloud Functions.
Ještě dvě věci, o kterých dokumentace FlutterFlow říká přímo: klíč předaný z frontendu, například přes remote config, zůstává otevřený i v soukromém volání, a bezpečná forma je hlavička vložená přímo do volání.
3. Přečti si odpověď
Sekce “3. Přečti si odpověď”V JSON Paths klikni na + Add JSON Path a dej každému jméno:
| Jméno | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
Znamení je délka, vydělená 30 a zaokrouhlená dolů, jako index v seznamu dvanácti názvů: například Ascendent 159.26 dává 5, tedy Pannu. Stačí vlastní funkce na čtyři řádky nebo seznam dvanácti řádků a index.
Webová sestava se nemůže obrátit na nás z prohlížeče
Sekce “Webová sestava se nemůže obrátit na nás z prohlížeče”Měřeno 2026-09-17 ze stránky na cizím doméně: POST /v1/chart odpovídá na preflight bez hlavičky access-control-allow-origin, a Chrome blokuje požadavek. Prohlížeči na cizím doméně odpovídají jen /v1/public/* a /v1/embed/*.
FlutterFlow provádí volání přes vlastní proxy v návrháři, v Run mode a Test mode, takže volání, které tam funguje, může selhat po publikaci webové aplikace. Dva řešení, a první doporučujeme:
- Udělej volání soukromým, jak výše. Pak se provádí v Cloud Function, ne v prohlížeči, a to okamžitě řeší jak otázku klíče, tak otázku CORS.
- Postav před nás vlastní backend, pokud ho už máš. Nastavení proxy ve FlutterFlow, spolu s vlastním proxy URL, jsou zdokumentována pro návrhář a režimy Run a Test; o publikované webové sestavě dokumentace nic neříká, takže na ně spoléhat není vhodné.
Veřejný klíč pk_ to nevyřeší: získává jen /v1/public/* a /v1/embed/*, a ze sestav pro iOS a Android je odmítán úplně, protože neposílají web-origin.
Chyby
Sekce “Chyby”401na soukromém volání: klíč leží na skupině, ne na volání.400 INVALID_FIELDstimezonevdetails: zóna je prázdná, je to zkratka jakoESTnebo ne název zóny.400sdatenebotimevdetails: formát neníYYYY-MM-DD/HH:MM:SS.403 ENDPOINT_NOT_IN_SCOPE: v oblasti klíče neníchart.429 KEY_BUDGET_EXHAUSTED: klíč vyčerpal svůj rozpočet; zvedni ho v dashboardu.