Przejdź do głównej zawartości
AstroWay/api v2.190.0 · pl
wszystkie systemy w normie

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.

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 wiersz Content-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.

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.

W JSON Paths kliknij + Add JSON Path i nadaj każdemu nazwę:

NazwaJSON 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.
  • 401 przy prywatnym wywołaniu: klucz znajduje się w grupie, a nie w wywołaniu.
  • 400 INVALID_FIELD z timezone w details**: strefa jest pusta, to skrót typu EST lub niepoprawna nazwa strefy.
  • 400 z date lub time w details**: format nie jest YYYY-MM-DD / HH:MM:SS.
  • 403 ENDPOINT_NOT_IN_SCOPE: w zakresie klucza brak chart.
  • 429 KEY_BUDGET_EXHAUSTED: klucz wyczerpał własny budżet; zwiększ go w panelu.
Przydatne?
Запропонувати правку

Ostatnia aktualizacja: