# Bubble

**API Connector** a Bubble-ben a Bubble szervereiről küld hívásokat, ezért itt egy „Csak szerver” kulcsra van szükség, nem nyilvánosra. Az alábbi kérés pontosan abban a formában kerül elküldésre a produkcióba, ahogyan a hívás összeállítja; a Bubble lépései a Bubble 2026-09-17-i kézikönyve alapján íródtak, és maga az API Connector az ingyenes csomagban szerepel.

Először hozz létre egy kulcsot, ahogyan az az [Automatizálási kulcs](/integrations/#ключ-для-автоматизації) szakaszban le van írva, `chart` hatókörrel.

## 1. Hozz létre egy gyűjteményt

Az API Connector bővítményben kattints a **+ New** gombra, és töltsd ki a gyűjteményt:

- **Collection name**: `AstroWay`. A Bubble kézikönyve figyelmeztet, hogy a gyűjtemény neve bekerül az alkalmazás kliensoldali kódjába, ezért tartsd egyszerűen.
- **Authentication**: **Private key in header**, a fejléc neve `X-Api-Key`, az érték a kulcsod.

Ha **None or self-handled** opciót hagysz, add hozzá a kulcsot a **Shared headers for all calls** részhez a **+ Add a shared header** gombbal, és jelöld be a **Private** opciót. Mindkét esetben a kulcs a szerveren marad.

<Aside type="caution" title="Soha ne tedd a kulcsot a Body-ba">
A Bubble a Body-t kliensbiztosként dokumentálja: értékei a látogató böngészőjébe kerülnek a hívás során. Az URL nem megy oda, és a **Private** jelölővel ellátott fejléc sem. A JSON-törzsbe beillesztett kulcs már egy nyilvánosan közzétett kulcs.
</Aside>

## 2. Hívás hozzáadása

Adj hozzá egy hívást a gyűjteményen belül, és töltsd ki:

- **Call name**: `Natal chart`.
- **Use as**: **Action** a munkafolyamathoz, **Data**, ha az oldal közvetlenül olvassa az adatokat.
- **Method**: `POST`.
- **URL**:

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

- **Body type**: **JSON**.
- **Body**: Az alábbi JSON. A szögletes zárójelek a Bubble paraméterszintaxisát jelentik, és mindegyik létrehoz egy bejegyzést a törzs alatt.

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

A törzs alatt **vedd ki a Private jelölést** mind az öt paraméterről, hogy az alkalmazás beállíthassa őket, és add meg a táblázatban szereplő értékeket alapértelmezettként. Ezután kattints az **Initialize call** gombra.

| Paraméter | Inicializálási érték |
|---|---|
| `date` | `1990-05-15` |
| `time` | `14:30:00` |
| `timezone` | `Europe/Kyiv` |
| `latitude` | `50.45` |
| `longitude` | `30.52` |

Az inicializálás az, ami megtanítja a Bubble-nek a válasz formáját, és a kézikönyv azt kéri, hogy ehhez mintadatokat használj, amelyek ez az öt érték. A helyes válasz tartalmazza az `ok` értéket true-val, és egy `data` objektumot `planets`, `houses` és `input` értékekkel.

Paraméter hozzáadása vagy átnevezése után az inicializálást meg kell ismételni: a válasz sémája pontosan ezen a lépésen memorizálódik.

## 3. Olvasd el a választ

Az inicializálás után a Bubble megjeleníti a válasz mezőit típussal és bejelölési lehetőséggel. Három legnépszerűbb érték:

- **Aszcendens**: `data > houses > ascendant`.
- **Nap**: az első bejegyzés `data > planets`, annak `longitude` értéke.
- **Hold**: a második bejegyzés, annak `longitude` értéke.
- **Használt eltolás**: `data > input > timezoneOffset`, a fenti példában ez `4`, mert Kijev azon a dátumon UTC+4-et használt.

A jegy a hosszúság 30-cal elosztva és lefelé kerekítve, mint egy index egy tizenkét nevű listában. Kifejezésben: oszd el a `data's houses's ascendant` értéket 30-cal, vedd az egész részt, és keresd meg a számot egy opciókészletben vagy egy tizenkét jegyből álló listában. Például az Aszcendens `159.26` értéke `5`-öt ad, azaz a Szüzet.

## Hibák

Jelöld be a hívásnál az **Include errors in response &amp; allow workflow actions to continue** opciót, ha a munkafolyamatban szeretnéd kezelni a hibákat, ahelyett, hogy leállítanád azt. A Bubble megjegyzi, hogy ennek az opciónak az inicializálás utáni átkapcsolása megváltoztatja a válasz formátumát, ezért az inicializálást meg kell ismételni.

- **`400 INVALID_FIELD` `timezone` a `details`-ben**: a zóna üres, ez egy rövidítés, mint az `EST`, vagy nem egy zóna neve.
- **`400` `date` vagy `time` a `details`-ben**: a formátum nem `YYYY-MM-DD` / `HH:MM:SS`. A `:formatted as` operátor a dátumon kijavítja ezt a hívás előtt.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: a kulcs hatókörében nincs `chart`.
- **`429 KEY_BUDGET_EXHAUSTED`**: a kulcs kimerítette a saját költségvetését; emeld meg a műszerfalon.

<Aside type="note">
A Bubble megosztott infrastruktúráról küld hívásokat, így annak címe megosztott más Bubble alkalmazásokkal. A mi korlátaink kulcsonként, nem címenként számítanak, így ez nem fogyasztja a kvótádat. Az API nem geokódol: a koordináták a saját mezőidből vagy egy geokódoló szolgáltatásból származnak, amelyhez van kulcsod.
</Aside>
