# Bubble

**API Connector** in Bubble, çağrıları Bubble sunucularından gönderir, bu yüzden burada genel bir anahtar değil, "Yalnızca sunucu" anahtarı gereklidir. Aşağıdaki istek, çağrının oluşturduğu şekilde üretime gönderilmiştir; Bubble'daki adımlar 17.09.2026 tarihli Bubble kılavuzuna göre yazılmıştır ve API Connector'ın kendisi ücretsiz planda belirtilmiştir.

Öncelikle, `chart` kapsamına sahip bir anahtarı [Otomasyon Anahtarı](/integrations/#ключ-для-автоматизації) bölümünde açıklandığı gibi oluştur.

## 1. Bir koleksiyon oluştur

API Connector eklentisinde **+ New**'e tıkla ve koleksiyonu doldur:

- **Collection name**: `AstroWay`. Bubble kılavuzu, koleksiyon adının uygulamanın istemci koduna girdiğini, bu yüzden basit tutmanı önerir.
- **Authentication**: **Private key in header**, başlık adı `X-Api-Key`, değer senin anahtarın.

Eğer **None or self-handled** bırakırsan, **+ Add a shared header** butonuyla anahtarı **Shared headers for all calls**'a ekle ve **Private** kutucuğunu işaretle. Her iki durumda da anahtar sunucuda kalır.

<Aside type="caution" title="Anahtarı Asla Body'ye Koyma">
Bubble, Body'yi istemci için güvenli olarak belgeler: değerleri çağrı sırasında ziyaretçinin tarayıcısına gönderilir. URL oraya gitmez ve **Private** kutucuğu işaretli başlık da gitmez. JSON gövdesine yerleştirilen bir anahtar, zaten yayınlanmış bir anahtardır.
</Aside>

## 2. Bir çağrı ekle

Koleksiyonun içine bir çağrı ekle ve onu doldur:

- **Call name**: `Natal chart`.
- **Use as**: Bir iş akışı için **Action**, eğer sayfa verileri doğrudan okuyorsa **Data**.
- **Method**: `POST`.
- **URL**:

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

- **Body type**: **JSON**.
- **Body**: Aşağıdaki JSON. Köşeli parantezler Bubble'daki parametre sözdizimidir ve her biri gövdenin altında bir giriş oluşturur.

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

Gövdenin altında, uygulamanın onları ayarlayabilmesi için beş parametrenin hepsinden **Private kutucuğunu kaldır** ve tablodaki değerleri varsayılan olarak belirt. Ardından **Initialize call**'a tıkla.

| Parametre | Başlatma için Değer |
|---|---|
| `date` | `1990-05-15` |
| `time` | `14:30:00` |
| `timezone` | `Europe/Kyiv` |
| `latitude` | `50.45` |
| `longitude` | `30.52` |

Başlatma, Bubble'a yanıtın biçimini öğreten şeydir ve kılavuz, bunun için bu beş değer olan örnek verileri kullanmanı ister. Doğru yanıt, `true` değerine sahip bir `ok` ve `planets`, `houses` ve `input` içeren bir `data` nesnesi içerir.

Bir parametre ekledikten veya yeniden adlandırdıktan sonra başlatmayı tekrarlaman gerekir: yanıt şeması tam olarak bu adımda ezberlenir.

## 3. Yanıtı oku

Başlatmadan sonra Bubble, yanıt alanlarını tür ve dahil etme kutucuğu ile gösterir. En popüler üç değer:

- **Yükselen**: `data > houses > ascendant`.
- **Güneş**: `data > planets`'in ilk girişi, onun `longitude`'u.
- **Ay**: ikinci giriş, onun `longitude`'u.
- **Kullanılan ofset**: `data > input > timezoneOffset`, yukarıdaki örnek için bu `4`'tür, çünkü Kiev o tarihte UTC+4'ü koruyordu.

Burç, 30'a bölünen ve aşağı yuvarlanan boylamdır, on iki isimden oluşan bir listedeki bir indeks gibi. İfade olarak: `data's houses's ascendant`'ı 30'a böl, tam kısmını al ve sayıyı bir option set'te veya on iki burçtan oluşan bir listede bul. Örneğin, Yükselen `159.26`, `5` yani Başak burcunu verir.

## Hatalar

Eğer iş akışındaki hataları durdurmak yerine işlemek istiyorsan, çağrıda **Include errors in response &amp; allow workflow actions to continue** kutucuğunu işaretle. Bubble, bu seçeneği başlatmadan sonra değiştirmenin yanıt formatını değiştirdiğini belirtir, bu yüzden başlatmayı tekrarlaman gerekir.

- **`details` içinde `timezone` ile `400 INVALID_FIELD`**: bölge boş, bu `EST` gibi bir kısaltma veya bir bölge adı değil.
- **`details` içinde `date` veya `time` ile `400`**: format `YYYY-MM-DD` / `HH:MM:SS` değil. Tarihteki `:formatted as` operatörü bunu çağrıdan önce düzeltir.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: anahtarın kapsamı içinde `chart` yok.
- **`429 KEY_BUDGET_EXHAUSTED`**: anahtar kendi bütçesini tüketti; bunu kontrol panelinde yükselt.

<Aside type="note">
Bubble, çağrıları paylaşılan bir altyapıdan gönderir, bu yüzden adresi diğer Bubble uygulamalarıyla ortaktır. Limitlerimiz adrese göre değil, anahtara göre sayılır, bu yüzden kotanı tüketmez. API coğrafi kodlama yapmaz: koordinatlar kendi alanlarından veya anahtarın olduğu bir coğrafi kodlama hizmetinden alınır.
</Aside>
