# Bubble

**API Connector** Bubble में Bubble सर्वर से कॉल भेजता है, इसलिए यहाँ 'केवल सर्वर' कुंजी की आवश्यकता है, सार्वजनिक नहीं। नीचे दिया गया अनुरोध उत्पादन में ठीक उसी तरह भेजा गया है जैसे कॉल इसे बनाता है; Bubble में चरण 2026-09-17 तक Bubble मैनुअल के अनुसार लिखे गए हैं, और API Connector स्वयं मुफ्त टियर में सूचीबद्ध है।

सबसे पहले, [स्वचालन के लिए कुंजी](/integrations/#ключ-для-автоматизації) अनुभाग में वर्णित अनुसार, `chart` स्कोप के साथ एक कुंजी बनाएँ।

## 1. एक संग्रह बनाएँ

API Connector प्लगइन में, **+ New** पर क्लिक करें और संग्रह भरें:

- **Collection name**: `AstroWay`. Bubble मैनुअल चेतावनी देता है कि संग्रह का नाम एप्लिकेशन के क्लाइंट कोड में चला जाता है, इसलिए इसे सरल रखें।
- **Authentication**: **Private key in header**, हेडर का नाम `X-Api-Key`, मान तुम्हारी कुंजी है।

यदि तुम **None or self-handled** छोड़ते हो, तो **+ Add a shared header** बटन का उपयोग करके **Shared headers for all calls** में कुंजी जोड़ो और उस पर **Private** चेकबॉक्स को चिह्नित करो। दोनों ही मामलों में, कुंजी सर्वर पर रहती है।

<Aside type="caution" title="कुंजी को कभी भी Body में न रखें">
Bubble Body को क्लाइंट-सुरक्षित के रूप में दस्तावेज़ित करता है: इसके मान कॉल के दौरान विज़िटर के ब्राउज़र पर भेजे जाते हैं। URL वहाँ नहीं जाता है, और **Private** चेकबॉक्स वाला हेडर भी नहीं। JSON बॉडी में डाली गई कुंजी पहले से ही एक प्रकाशित कुंजी है।
</Aside>

## 2. एक कॉल जोड़ें

संग्रह के भीतर एक कॉल जोड़ो और इसे भरो:

- **Call name**: `Natal chart`.
- **Use as**: वर्कफ़्लो के लिए **Action**, **Data**, यदि पृष्ठ सीधे डेटा पढ़ता है।
- **Method**: `POST`.
- **URL**:

  ```
  https://api.astroway.info/v1/chart
  ```

- **Body type**: **JSON**.
- **Body**: नीचे दिया गया JSON। कोणीय कोष्ठक Bubble में पैरामीटर सिंटैक्स हैं, और उनमें से प्रत्येक बॉडी के नीचे एक प्रविष्टि बनाता है।

```json
{
  "date": "<date>",
  "time": "<time>",
  "timezone": "<timezone>",
  "latitude": "<latitude>",
  "longitude": "<longitude>"
}
```

बॉडी के नीचे, सभी पाँच मापदंडों से **Private चेकबॉक्स हटाओ**, ताकि एप्लिकेशन उन्हें सेट कर सके, और तालिका से मानों को डिफ़ॉल्ट के रूप में निर्दिष्ट करो। फिर **Initialize call** पर क्लिक करो।

| पैरामीटर | आरंभीकरण के लिए मान |
|---|---|
| `date` | `1990-05-15` |
| `time` | `14:30:00` |
| `timezone` | `Europe/Kyiv` |
| `latitude` | `50.45` |
| `longitude` | `30.52` |

आरंभीकरण वह है जो Bubble को प्रतिक्रिया के स्वरूप को सिखाता है, और मैनुअल इसके लिए नमूना डेटा का उपयोग करने के लिए कहता है, जो ये पाँच मान हैं। सही प्रतिक्रिया में `ok` का मान true और `planets`, `houses` और `input` के साथ एक `data` ऑब्जेक्ट होता है।

पैरामीटर जोड़ने या नाम बदलने के बाद, आरंभीकरण को दोहराना होगा: प्रतिक्रिया स्कीमा इसी चरण में याद किया जाता है।

## 3. प्रतिक्रिया पढ़ें

आरंभीकरण के बाद, Bubble प्रकार और समावेशन चेकबॉक्स के साथ प्रतिक्रिया फ़ील्ड दिखाता है। तीन सबसे लोकप्रिय मान:

- **लग्न**: `data > houses > ascendant`.
- **सूर्य**: `data > planets` की पहली प्रविष्टि, उसका `longitude`।
- **चंद्रमा**: दूसरी प्रविष्टि, उसका `longitude`।
- **उपयोग किया गया ऑफ़सेट**: `data > input > timezoneOffset`, ऊपर दिए गए उदाहरण के लिए यह `4` है, क्योंकि उस तारीख को कीव UTC+4 पर था।

राशि देशांतर है, जिसे 30 से विभाजित किया गया है और नीचे पूर्णांकित किया गया है, जैसे बारह नामों की सूची में एक सूचकांक। अभिव्यक्ति में: `data's houses's ascendant` को 30 से विभाजित करो, पूर्णांक भाग लो और विकल्प सेट में या बारह राशियों की सूची में संख्या खोजो। उदाहरण के लिए, लग्न `159.26` `5` देता है, यानी कन्या।

## त्रुटियाँ

कॉल पर **Include errors in response &amp; allow workflow actions to continue** चेकबॉक्स को चिह्नित करो, यदि तुम वर्कफ़्लो में विफलताओं को संसाधित करना चाहते हो, न कि उसे रोकना चाहते हो। Bubble बताता है कि आरंभीकरण के बाद इस विकल्प को स्विच करने से प्रतिक्रिया का स्वरूप बदल जाता है, इसलिए आरंभीकरण को दोहराना होगा।

- **`details` में `timezone` के साथ `400 INVALID_FIELD`**: ज़ोन खाली है, यह `EST` जैसा एक संक्षिप्त नाम है या ज़ोन का नाम नहीं है।
- **`details` में `date` या `time` के साथ `400`**: प्रारूप `YYYY-MM-DD` / `HH:MM:SS` नहीं है। दिनांक पर `:formatted as` ऑपरेटर कॉल से पहले इसे ठीक करता है।
- **`403 ENDPOINT_NOT_IN_SCOPE`**: कुंजी के स्कोप में `chart` नहीं है।
- **`429 KEY_BUDGET_EXHAUSTED`**: कुंजी ने अपना बजट समाप्त कर दिया है; इसे डैशबोर्ड में बढ़ाओ।

<Aside type="note">
Bubble साझा इंफ्रास्ट्रक्चर से कॉल भेजता है, इसलिए इसका पता अन्य Bubble एप्लिकेशनों के साथ साझा किया जाता है। हमारी सीमाएँ कुंजी पर गिनी जाती हैं, पते पर नहीं, इसलिए यह तुम्हारे कोटे को नहीं खाता है। API जियोकोड नहीं करता है: निर्देशांक तुम्हारे अपने फ़ील्ड से या जियोकोडिंग सेवा से लिए जाते हैं, जिसके लिए तुम्हारे पास कुंजी है।
</Aside>
