İçeriğe geç
AstroWay/api v2.190.0 · tr
tüm sistemler normal

FlutterFlow

FlutterFlow bir uygulamaya derlenir ve bu uygulamayı kullanıcıların elinde tutar, bu yüzden sorun hangi alanları doldurmakta değil, anahtarın nerede bulunacağıdır. Aşağıdaki istek, üretim ortamına tam olarak çağrının oluşturduğu şekilde gönderilir; FlutterFlow adımları 2026-09-17 tarihli FlutterFlow belgelerine göre yazılmıştır.

İlk olarak, Otomasyon Anahtarı bölümünde açıklandığı gibi, chart alanı ile bir anahtar oluştur.

API Calls’ı aç, + Add’e tıkla, Create API Call’ı seç ve doldur:

  • API Call Name: Natal chart.

  • Method Type: POST.

  • URL:

    https://api.astroway.info/v1/chart
  • Sekme Headers, + Add Header: bir satır X-Api-Key: ve ardından anahtarınız. İkinci satır Content-Type: application/json.

  • Sekme Variables: date, time, timezone, latitude, longitude olmak üzere beş adet String değişken, her biri aşağıdaki JSON’dan varsayılan değere sahip.

  • Sekme Body, açılır listeden JSON seçeneği: JSON’u yapıştır ve değişkenleri içine sürükle.

{
"date": "1990-05-15",
"time": "14:30:00",
"timezone": "Europe/Kyiv",
"latitude": "50.45",
"longitude": "30.52"
}

Enlem ve boylam kasıtlı olarak string olarak bırakılır: API "50.45" değerini sayı olarak kabul eder, ancak string değişkenlerin sürüklenmesini kolaylaştırır.

Add Call’a tıkla, Response & Test’i aç, Test API Call’a tıkla ve yanıtı Test Response’da gör. data.input.timezoneOffset 4 olarak döner: Kiev’in o tarihteki saat dilimi kayması budur.

Advanced Settings içinde çağrının Make Private seçeneğini aç, Save’e tıkla, ardından Deploy APIs. Artık çağrı Firebase Cloud Function içinde çalışır, bu yüzden proje bağlı bir Firebase ve Cloud Functions içeren bir Firebase tarifesine ihtiyaç duyar.

FlutterFlow belgelerinin doğrudan söylediği iki şey daha var: ön uçtan, örneğin remote config üzerinden gönderilen anahtar, özel çağrıda bile açık kalır; güvenli form ise başlık olarak doğrudan çağrıya eklenmiş halidir.

JSON Paths içinde + Add JSON Path’e tıkla ve her birine bir isim ver:

İsimJSON Path
ascendant$.data.houses.ascendant
sunLongitude$.data.planets[0].longitude
moonLongitude$.data.planets[1].longitude
offsetUsed$.data.input.timezoneOffset

İşaret, 30’a bölünmüş ve aşağı yuvarlanmış uzunluktur, bu 12 isimlik bir listedeki indeks gibidir: örneğin Ascendant 159.26 5 verir, yani Başak. Dört satırlık bir özel fonksiyon ya da 12 satırlık bir liste ve indeks yeterlidir.

Web derlemesi tarayıcıdan bize erişemez

Section titled “Web derlemesi tarayıcıdan bize erişemez”

2026-09-17 tarihinde dış bir alan adındaki bir sayfadan ölçüldü: POST /v1/chart preflight isteğine access-control-allow-origin başlığı olmadan yanıt veriyor ve Chrome isteği engelliyor. Dış alan adındaki tarayıcı yalnızca /v1/public/* ve /v1/embed/*’e yanıt alıyor.

FlutterFlow, Run ve Test modlarında, tasarımcı içinde kendi proxy’si üzerinden çağrılar yapar, bu yüzden orada çalışan bir çağrı, web uygulaması yayınlandıktan sonra başarısız olabilir. İki çözüm var ve ilkini öneriyoruz:

  • Çağrıyı özel yap, yukarıdaki gibi. Böylece Cloud Function içinde çalışır, tarayıcıda değil ve hem anahtar hem de CORS sorunu anında çözülür.
  • Kendi backend’inizi bize koyun, zaten varsa. FlutterFlow’da proxy ayarları, kendi proxy URL’nizle birlikte, tasarımcı ve Run/Test modları için belgelenmiştir; yayınlanmış web derlemesi hakkında dokümantasyon bir şey söylemez, bu yüzden onlara güvenmemelisiniz.

Public anahtar pk_ bu sorunu çözmez: sadece /v1/public/* ve /v1/embed/* alır, iOS ve Android derlemelerinden ise tamamen reddedilir, çünkü web-origin göndermezler.

  • 401 özel çağrıda: anahtar grup üzerinde, çağrı üzerinde değil.
  • 400 INVALID_FIELD timezone içinde details: bölge boş, bu EST gibi bir kısaltma ya da bölge adı değil.
  • 400 date veya time içinde details: format YYYY-MM-DD / HH:MM:SS değil.
  • 403 ENDPOINT_NOT_IN_SCOPE: anahtar alanında chart yok.
  • 429 KEY_BUDGET_EXHAUSTED: anahtar bütçesini tüketti; kontrol panelinden artır.
Yardımcı oldu mu?
Запропонувати правку

Son güncelleme: