FlutterFlow
FlutterFlow kompiluje się do aplikacji, którą trzyma w ręku twój użytkownik, więc pytanie nie dotyczy, które pola wypełnić, a gdzie znajdzie się klucz. Żądanie poniżej zostało wysłane do produkcji dokładnie w tej formie, w jakiej je konstruuje wywołanie; kroki w FlutterFlow zostały napisane zgodnie z dokumentacją FlutterFlow z dnia 2026-09-17.
Najpierw utwórz klucz, jak opisano w sekcji Klucz do automatyzacji, z zakresem chart.
1. Utwórz wywołanie
Dział zatytułowany „1. Utwórz wywołanie”Otwórz API Calls, kliknij + Add, wybierz Create API Call i wypełnij:
- Nazwa wywołania API:
Natal chart. - Typ metody:
POST. - URL:
https://api.astroway.info/v1/chart- Zakładka Headers, + Add Header: jeden wiersz
X-Api-Key:a następnie twój klucz. Drugi wierszContent-Type: application/json. - Zakładka Variables: pięć zmiennych typu String,
date,time,timezone,latitude,longitude, każda z domyślną wartością z JSON poniżej. - Zakładka Body, w losowej liście JSON: wklej JSON i przeciągnij do niego zmienne.
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}Szerokość i długość pozostają ciągami znaków celowo: API akceptuje "50.45" jako liczbę, a ciąg upraszcza przeciąganie zmiennych.
Kliknij Add Call, otwórz Response & Test, kliknij Test API Call i zobacz odpowiedź w Test Response. data.input.timezoneOffset zwraca wartość 4: dokładnie taki przesunięcie miało miejsce w Kijowie tego dnia.
2. Zrób wywołanie prywatne
Dział zatytułowany „2. Zrób wywołanie prywatne”W Advanced Settings wywołania włącz Make Private, kliknij Save, a następnie Deploy APIs. Teraz wywołanie jest wykonywane w Firebase Cloud Function, więc projekt wymaga podłączonego Firebase oraz planu Firebase z Cloud Functions.
Dwie dodatkowe rzeczy, o których dokumentacja FlutterFlow mówi bezpośrednio: klucz przesyłany z frontendu, na przykład przez remote config, pozostaje otwarty nawet w prywatnym wywołaniu, a bezpieczna forma to nagłówek wpisany w samo wywołanie.
3. Przeczytaj odpowiedź
Dział zatytułowany „3. Przeczytaj odpowiedź”W JSON Paths kliknij + Add JSON Path i nadaj każdemu nazwę:
| Nazwa | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
Znak to długość podzielona przez 30 i zaokrąglona w dół, jako indeks w liście dwunastu nazw: na przykład Ascendant 159.26 daje 5, czyli Panna. Wystarczy własna funkcja czterech linii lub lista dwunastu linii i indeks. |
Kompilacja sieciowa nie może się komunikować z nami z przeglądarki
Dział zatytułowany „Kompilacja sieciowa nie może się komunikować z nami z przeglądarki”Zmierzono 2026-09-17 ze strony na obcym domenie: POST /v1/chart odpowiada na preflight bez nagłówka access-control-allow-origin, a Chrome blokuje żądanie. Przeglądarka na obcym domenie odpowiada tylko na /v1/public/* i /v1/embed/*.
FlutterFlow przeprowadza wywołania przez własny proxy w konstruktorze, w trybie Run i Test, więc wywołanie, które tam działa, może nie powieść się po publikacji aplikacji internetowej. Dwa rozwiązania, a pierwsze zalecamy:
- Zrób wywołanie prywatne, jak wyżej. Wtedy jest wykonywane w Cloud Function, a nie w przeglądarce, i od razu rozwiązuje to zarówno problem klucza, jak i problem CORS.
- Umieść przed nami własny backend, jeśli już go masz. Konfiguracja proxy w FlutterFlow, razem z własnym adresem URL proxy, jest udokumentowana dla konstruktora oraz trybów Run i Test; dotyczące opublikowanej kompilacji sieciowej dokumentacja nic nie mówi, więc nie można na nich polegać.
Publiczny klucz
pk_tego nie rozwiązuje: uzyskuje dostęp tylko do/v1/public/*i/v1/embed/*, a kompilacje dla iOS i Android są całkowicie odrzucane, ponieważ nie wysyłają pochodzenia sieciowego.
401przy prywatnym wywołaniu: klucz znajduje się w grupie, a nie w wywołaniu.400 INVALID_FIELDztimezonewdetails**: strefa jest pusta, to skrót typuESTlub niepoprawna nazwa strefy.400zdatelubtimewdetails**: format nie jestYYYY-MM-DD/HH:MM:SS.403 ENDPOINT_NOT_IN_SCOPE: w zakresie klucza brakchart.429 KEY_BUDGET_EXHAUSTED: klucz wyczerpał własny budżet; zwiększ go w panelu.