FlutterFlow
FlutterFlow dikompilasi menjadi aplikasi yang dipegang oleh pengguna Anda, jadi pertanyaannya bukan tentang bidang apa yang harus diisi, tetapi di mana kunci akan berada. Permintaan di bawah ini dikirim ke produksi persis seperti yang dibuat oleh panggilan; langkah-langkah di FlutterFlow ditulis sesuai dokumentasi FlutterFlow per 2026-09-17.
Pertama, buat kunci seperti dijelaskan di bagian Kunci untuk Otomatisasi, dengan area chart.
1. Buat panggilan
Section titled “1. Buat panggilan”Buka API Calls, tekan + Add, pilih Create API Call dan isi:
-
API Call Name:
Natal chart. -
Method Type:
POST. -
URL:
https://api.astroway.info/v1/chart -
Tab Headers, + Add Header: satu baris
X-Api-Key:dan kemudian kunci Anda. Baris keduaContent-Type: application/json. -
Tab Variables: lima variabel tipe String,
date,time,timezone,latitude,longitude, masing-masing dengan nilai default dari JSON di bawah. -
Tab Body, di dropdown JSON: masukkan JSON dan seret variabel ke dalamnya.
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}Lintang dan bujur tetap string sengaja: API menerima "50.45" sebagai angka, dan string menyederhanakan penyeretan variabel.
Tekan Add Call, buka Response & Test, tekan Test API Call dan lihat respons di Test Response. data.input.timezoneOffset kembali sebagai 4: itulah pergeseran Kiev pada tanggal tersebut.
2. Buat panggilan menjadi privat
Section titled “2. Buat panggilan menjadi privat”Di Advanced Settings panggilan, aktifkan Make Private, tekan Save, lalu Deploy APIs. Sekarang panggilan dieksekusi di Firebase Cloud Function, jadi proyek memerlukan Firebase yang terhubung dan tarif Firebase dengan Cloud Functions.
Masih dua hal lagi yang dokumentasi FlutterFlow sebutkan secara langsung: kunci yang diteruskan dari frontend, misalnya melalui remote config, tetap terbuka bahkan di panggilan privat, dan bentuk aman itu header yang ditulis di panggilan itu sendiri.
3. Baca respons
Section titled “3. Baca respons”Di JSON Paths, tekan + Add JSON Path dan beri nama masing-masing:
| Nama | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
Tanda itu adalah lintang, dibagi 30 dan dibulatkan ke bawah, sebagai indeks dalam daftar dua belas nama: misalnya Asenden 159.26 memberikan 5, yaitu Virgo. Cukup fungsi kustom empat baris atau daftar dua belas baris dan indeksnya.
Build web tidak dapat menghubungi kami dari browser
Section titled “Build web tidak dapat menghubungi kami dari browser”Diukur pada 2026-09-17 dari halaman di domain pihak ketiga: POST /v1/chart merespons preflight tanpa header access-control-allow-origin, dan Chrome memblokir permintaan. Browser di domain pihak ketiga hanya merespons /v1/public/* dan /v1/embed/*.
FlutterFlow menjalankan panggilan melalui proksi sendiri di builder, di Run mode dan Test mode, jadi panggilan yang bekerja di sana bisa gagal setelah publikasi web aplikasi. Dua solusi, dan yang pertama kami rekomendasikan:
- Buat panggilan menjadi privat, seperti di atas. Maka dieksekusi di Cloud Function, bukan di browser, dan ini langsung menyelesaikan masalah kunci dan masalah CORS.
- Pasang backend Anda sendiri di depan kami, jika Anda sudah memilikinya. Pengaturan proksi di FlutterFlow, bersama dengan proxy URL Anda sendiri, didokumentasikan untuk builder dan mode Run dan Test; tentang build web yang dipublikasikan, dokumentasi tidak mengatakan apa-apa, jadi tidak boleh bergantung padanya di sana.
Kunci publik pk_ tidak menyelesaikan ini: itu hanya mendapatkan /v1/public/* dan /v1/embed/*, dan dari build untuk iOS dan Android ditolak sama sekali, karena mereka tidak mengirim web-origin.
Kesalahan
Section titled “Kesalahan”401di panggilan privat: kunci berada di grup, bukan di panggilan.400 INVALID_FIELDdengantimezonedidetails: zona kosong, itu adalah singkatan sepertiESTatau bukan nama zona.400dengandateatautimedidetails: formatnya bukanYYYY-MM-DD/HH:MM:SS.403 ENDPOINT_NOT_IN_SCOPE: area kunci tidak memilikichart.429 KEY_BUDGET_EXHAUSTED: kunci telah menghabiskan anggarannya; naikkan di dashboard.