FlutterFlow
FlutterFlow एक एप्लिकेशन में कंपाइल होता है, जिसे तेरा उपयोगकर्ता अपने हाथ में रखता है, इसलिए सवाल यह नहीं है कि कौन‑से फ़ील्ड भरने हैं, बल्कि यह है कि कुंजी कहाँ रहती है। नीचे दिया गया अनुरोध ठीक उसी रूप में प्रोडक्शन पर भेजा गया है, जैसा कि कॉल बनाता है; FlutterFlow में कदम 2026-09-17 की FlutterFlow दस्तावेज़ीकरण के अनुसार लिखे गए हैं।
पहले कुंजी बनाओ, जैसा कि सेक्शन ऑटोमेशन के लिए कुंजी में बताया गया है, क्षेत्र chart के साथ।
1. कॉल बनाओ
Section titled “1. कॉल बनाओ”API Calls खोलो, + Add पर क्लिक करो, Create API Call चुनो और भरो:
-
API Call Name:
Natal chart. -
Method Type:
POST. -
URL:
https://api.astroway.info/v1/chart -
टैब Headers, + Add Header: एक पंक्ति
X-Api-Key:और उसके बाद तेरा कुंजी। दूसरी पंक्तिContent-Type: application/json। -
टैब Variables: पाँच स्ट्रिंग प्रकार के वेरिएबल,
date,time,timezone,latitude,longitude, प्रत्येक का डिफ़ॉल्ट मान नीचे दिए गए JSON से। -
टैब Body, ड्रॉप‑डाउन JSON में: JSON पेस्ट करो और उसमें वेरिएबल ड्रैग करो।
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}Latitude और longitude को जानबूझकर स्ट्रिंग के रूप में रखा गया है: API "50.45" को संख्या के रूप में लेता है, लेकिन स्ट्रिंग वेरिएबल ड्रैग को आसान बनाती है।
Add Call पर क्लिक करो, Response & Test खोलो, Test API Call पर क्लिक करो और Test Response में जवाब देखो। data.input.timezoneOffset 4 के रूप में लौटता है: यही किव की उस तारीख का ऑफ़सेट था।
2. कॉल को निजी बनाओ
Section titled “2. कॉल को निजी बनाओ”Advanced Settings में कॉल के लिए Make Private चालू करो, Save पर क्लिक करो, फिर Deploy APIs। अब कॉल Firebase Cloud Function में चलता है, इसलिए प्रोजेक्ट को जुड़ा हुआ Firebase और Cloud Functions वाला Firebase प्लान चाहिए।
FlutterFlow दस्तावेज़ीकरण दो और बातें स्पष्ट रूप से कहता है: फ्रंटएंड से भेजी गई कुंजी, जैसे remote config के माध्यम से, निजी कॉल में भी खुली रहती है, और सुरक्षित रूप हेडर है, जो सीधे कॉल में डाला जाता है।
3. जवाब पढ़ो
Section titled “3. जवाब पढ़ो”JSON Paths में + Add JSON Path पर क्लिक करो और प्रत्येक को नाम दो:
| नाम | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
साइन वह longitude है, जिसे 30 से भाग देकर नीचे की ओर राउंड किया जाता है, जैसे 12 नामों की सूची में इंडेक्स: उदाहरण के लिए Ascendant 159.26 देता है 5, यानी Virgo। चार पंक्तियों की कस्टम फ़ंक्शन या 12 पंक्तियों की सूची और इंडेक्स पर्याप्त है।
वेब बिल्ड ब्राउज़र से हमसे संपर्क नहीं कर सकता
Section titled “वेब बिल्ड ब्राउज़र से हमसे संपर्क नहीं कर सकता”2026-09-17 को एक बाहरी डोमेन पेज से मापा गया: POST /v1/chart preflight का जवाब access-control-allow-origin हेडर के बिना देता है, और Chrome अनुरोध को ब्लॉक करता है। बाहरी डोमेन पर ब्राउज़र को केवल /v1/public/* और /v1/embed/* जवाब देते हैं।
FlutterFlow कॉल को अपने प्रॉक्सी के माध्यम से Designer, Run mode और Test mode में चलाता है, इसलिए जो कॉल वहाँ काम करता है, वेब‑ऐप प्रकाशित करने के बाद फेल हो सकता है। दो समाधान हैं, और पहला मैं सुझाता हूँ:
- कॉल को निजी बनाओ, ऊपर की तरह। तब यह Cloud Function में चलता है, ब्राउज़र में नहीं, और यह तुरंत कुंजी और CORS दोनों की समस्या हल करता है।
- हमारे सामने अपना बैकएंड रखो, अगर तरे पास पहले से है। FlutterFlow में प्रॉक्सी सेटिंग, अपने proxy URL के साथ, Designer और Run तथा Test मोड के लिए दस्तावेज़ित हैं; प्रकाशित वेब‑बिल्ड के बारे में दस्तावेज़ कुछ नहीं कहता, इसलिए उन पर भरोसा नहीं करना चाहिए।
पब्लिक कुंजी pk_ यह नहीं सुलझाती: यह केवल /v1/public/* और /v1/embed/* तक पहुँचती है, और iOS और Android बिल्ड्स से पूरी तरह ब्लॉक हो जाती है, क्योंकि वे वेब‑origin नहीं भेजते।
त्रुटियाँ
Section titled “त्रुटियाँ”401निजी कॉल पर: कुंजी समूह पर है, कॉल पर नहीं।400 INVALID_FIELDtimezoneके साथdetailsमें: टाइमज़ोन खाली है, यहESTजैसी संक्षिप्ति या टाइमज़ोन का नाम होना चाहिए।400dateयाtimeके साथdetailsमें: फ़ॉर्मेटYYYY-MM-DD/HH:MM:SSनहीं है।403 ENDPOINT_NOT_IN_SCOPE: कुंजी के क्षेत्र मेंchartनहीं है।429 KEY_BUDGET_EXHAUSTED: कुंजी ने अपना बजट खत्म कर दिया; डैशबोर्ड में इसे बढ़ाओ।